фильтровать пакеты TCP содержащие текстовые сообщения.
Именно в такой формулировке - нельзя.
У TCP нет понятия "пакет" как такового.
TCP - условно бесконечный поток данных, в котором данные передаются небольшими "порциями" в TCP-сегментах. Ваше сообщение можно передать как одним сегментом, так и множеством сегментов с 1 байтом payload'а в каждом.
Полученные данные буферизируются приложением, а затем уже (при достаточном количестве полученных данных) обрабатываются согласно протоколу этого приложения.
Поэтому "stateless" проверка содержимого сегмента - бесполезна.
Возможно ли такое реализовать сторонними средствами (прокси-сервер или какой-то фильтр-драйвер)?
Проще всего реализовать прокси-сервер, в котором будет реализована поддержка протокола приложения.
Таким образом Вы сможете фильтровать трафик для этого приложения.