Сталкивался. Напишите прокси на c/c++ и обеспечите достаточную буферизацию пакетов.
Прокси(перехватчик) должен обеспечивать прием пакетов и их ретрансляцию в Вашу программу на С# для дальнейшей неспешной обработки.
Производительность C# недостаточна для решения таких задач даже на i7

Так же для уменьшения потери пакетов желательно перейти на 100 МБит соединение(по крайней мере выйти на трафик не более 50% от возможностей интерфейса, т.к. при работе на 100% скорости нужен особый подход) и поиграться с настройками режимов работы трансиверов.