Antes que nada Muchas Gracias por averme ayudado.
Les informo que encontre la solucion a mi problema.
Una solucion practica fue la expuesta por DarkByte, pero como ya lo mencione me ocacionaba problemas cuando el servidor dejaba de enviar datos por un periodo de tiempo.
La solucion fue crear el siguiente Threard Object, que esta dormido mintras no haya datos que leer:
Código Delphi
[-]procedure escucah.Execute;
var
Com,
Msg : String;
begin
while true do
with Form1 do
begin
if not IdTcpClient1.Connected then
exit;
Msg := IdTCPClient1.ReadLn(); memLines.Lines.Add(Msg);
end;
end;
Gracias por Todo.