While application.processmessages would help in alowing other events to be fired while you were in the Creature processing loop it would slow down the creature processing. What your getting into at this point is the need to start looking into threading.
While threading can get very complex if you split your work up right it can be very easy to impliment. My suggestion would be if you have so much creature processing, start by moving all creature processing into a thread and see how that helps the speed of your main loop.
The unfortunate thing here is that you cannot assign cpu time to a task in your program unless it is a thread. When in a thread you can assign priortys to the threads giving one more priority over another. Then it becomes a balancing act as to which process should get more cpu time then another.
Hope this LONG winded explination helps. I suggest that if you want ot start looking at threads look at the JVCL thread component. It encapsulates a TThread and makes it a bit easer to use, athough there implimentation does have some drawbacks.

-Jeremy