das liegt dann wohl eher daran, daß wenn das Memo voller, es auch immer langsamer wird und somit wieder viel mehr Zeit wegen des Threads gewartet werden muß, als der Hauptthread für sich abbekommt.
versuch es mal so:
Delphi-Quellcode:
procedure TForm8.addstring(str: String);
begin
memo1.Lines.Add(str);
while memo1.Lines.Count > 1000 do memo1.Lines.Delete(0);
end;