а в каком режиме работает сервак? имеется в виду, Blocking/NonBlocking? может, попытаться переделать на потоковую обработку?
Никакой разницы, но обычно в blocking.
В каком смысле на потоковую? Отдельный поток для сервера создавать?
Просто при получении и так он создается - для запихивания сообщений в StringList Memo.
Вот кусок из onAccept:
  DataThread:= TClientDataThread.Create(true);
  DataThread.TargetList := memo1.lines;
  DataThread.ListBuffer.Add('*** Connection Accepted ***');
  ClientSocket.ReceiveBuf(Buf,SizeOf(Buf));
  move(Buf.Buf,s,Buf.Size);
  DataThread.ListBuffer.Add(s);
  DataThread.Resume;
Вообще проблема в том, что если серверный компонент лежит в dll то в этот обработчик вообще не попадает управление.