Страдалецъ сказал выше, что надо использовать нити (потоки), смотри в сторону TThread...
В 2-х словах...
Винда многопоточная ОС, т.е. создается впечатление, что все приложения работают параллельно, но на самом деле по очереди.
Так и любое приложение (процесс) выполняет одну задачу, и для выполнения другой задачи ему нужен другой поток.
В твоем случае один поток это интерфейс, другой поток цикл.
Приложение использует как минимум 1 поток, но может создавать еще. Смотри в диспетчере задач, многие приложения многопоточные.
Ничего сложного в них нет...
http://www.delphikingdom.com/asp/vie...catalogid=1370