Устойчивые сочетания "по необходимости" и "при необходимости" являются одинаково корректными, но не могут быть названы полностью семантически равноправными. Они не тождественны, это не варианты одного и того же, хотя оттенки значений, отличающих их друг от друга, очень незначительны..
Сочетание "при необходимости", которое может выполнять функцию наречия, отвечает на вопросы "при каких условиях?", "в каком случае?", "когда?". По сути дела, "при необходимости" - это наречное сочетание условия. Его можно заменять в предложениях на "если будет (была бы) такая необходимость". Причём такая необходимость - не обязательно свершившийся факт, её может и не наступить.
Более подробно о слитном, раздельном и дефисном правописание наречий можно прочитать тут.
Несколько иным лексическим значением обладает сочетание "по необходимости". Отвечая на вопросы "зачем?", "по какой причине?", "из-за чего?" и "почему?", данное наречное выражение объясняет причину. События (преимущественно - действия), продиктованные необходимостью, чаще всего уже произошли. Иногда они происходят и в данный момент, могут произойти и в будущем. Но они не гипотетичны, а реальны.
Примеры предложений:
"При необходимости мы могли бы кое-какие условия и пересмотреть".
"Мы пересматриваем условия не просто так, а только по необходимости".