Tu solucion es definitivamente utilizar aplicaciones multihilos (multithreading). Te advierto desde ahora que no es exactamente sencillo (no por desanimar), y al mismo tiempo te paso este enlace, que a pesar de estar en ingles, es el mejor documento que he visto acerca de la programacion multihilos en delphi:
http://www.pergolesi.demon.co.uk/prog/threads/ToC.html