Miss die Zeit, bevor Du ins Memo zeichnen lässt (Lines.Assign). Das frisst ne Menge Zeit.
Delphi-Quellcode:
Dauer := GetTickCount - Beginn;
Memo1.Lines.Assign(PrimZahlen);
Zeit ist 450 ms bei mir dann.
Edit: Fragst man nicht bei jedem Durchlauf SpinEdit.Value (Jedes mal ein Funktionaufruf an den Getter!) ab, dann habe ich als Zeit 0 ms (also nicht mehr messbar, < 16 ms). Speicher den Wert am Anfang in eine Integer-Variable und dann verwende im Folgenden diese.
Edit 2: Getestet mit Delphi 2005 Professional, dürfte bei D2007 aber genauso ablaufen.
Viele Grüße