HttpListener находится в .NET, чтобы обеспечить основной строительный блок для простого HTTP-сервера. Там, где просто, не поддерживается высокая скорость работы.
Обычно прокси-серверы HTTP должны иметь очень низкие издержки для поддержки множества одновременных соединений, а также для обеспечения функции прокси (которая зависит от типа прокси).
Прокси подробно описаны в RFC 2616 §8.1.3 ), и в нем сразу содержится один элемент, который (если я правильно понимаю HttpListener) невозможен:
Прокси-сервер ДОЛЖЕН сигнализировать о постоянных соединениях отдельно со своими клиентами и исходными серверами (или другими прокси-серверами), к которым он подключается. Каждое постоянное соединение применяется только к одной транспортной линии.