If it runs in a separate thread
SuspendThread and
ResumeThread might be exactly what you are searching for.
However, if you suspend the thread from the outside, the context is undetermined. So if you want the thread to be suspended at a certain position, it may suspend itself using SuspendThread and be woken up from another thread using ResumeThread.
Note: if you have the usual Delphi-like architecture of an application, there is only one main thread with a message queue. So to achieve the above you need to have a secondary thread at least. And be sure to sync them because the
VCL does not like threads too much