Du erzeugst mit GetScreenshot ständig neue TBitmap Objekte, gibst diese aber nie wieder frei. Bei
image1.Picture.Bitmap:= GetScreenShot
wird intern ein Assign ausgelöst (schau mal im
VCL-Quelltext, wenn du den hast) und dein Objekt wird nie wieder benutzt oder freigegeben.
// EDIT:
Ach ja, mit FastMM kannst du so etwas auch selber finden, wenn du es (gerade bei größeren Projekten) nicht selbst siehst.