Du zeichnest in ein Hintergrundbitmap, dass du dann im OnPaint-Ereignis auf die Canvas der PaintBox kopierst.
Code:
bmp.Canvas.Rectangle(10, 10, 200, 200);
PaintBox1.Repaint; // Hintergrundbitmap auf Paintbox kopieren
OnPaint:
PaintBox1.Canvas.Draw(0, 0, bmp);
Das Bitmap kannst du ja ganz einfach speichern.