Hola,
Pareciera que ese proceso está consumiendo todos los recursos, de modo que la interfaz de usuario de tu programa queda como paralizada. Normalmente, puede utilizarse la variable global "Application", y su método "ProcessMessages", de modo que des un respiro en el pesado proceso, precisamente, a la interfaz de usuario. Esto se resume así:
Código Delphi
[-]
for i := 0 do 100000 do
begin
Application.ProcessMessages();
end;
Si algo así no te sirve, el maestro Seoane comentó alguna vez que también era posible hacer respirar a la aplicación usando un "Sleep" de pocos milisegundos, a cada iteración del supuesto proceso pesado. Después, hasta donde yo llego, y, si eso no es suficiente, tal vez convendría plantearse utilizar un "hilo" de ejecución diferente, para llevar a cabo ese proceso en concreto.