Я плохо представляю специфику аппликации, но возможно сработает следующий вариант.
Для каждого потока создается некая структура, через поля которой происходит обмен данными между главным окном и потоками. Главное окно ждет прибытия данных по какому нить событию (Event), соответственно каждый поток ждет ответа по другому событию. То есть каждому потоку соответстввует 2 события. Ну в общем это так, сырая идея, мож есть что и покрасивее. По крайней мере очередь сообщений трогать не надо.