Schon diese Zeile müsste mit dem Hauptthread synchronisiert werden:
Memo1.Lines.Add('TThread.Ergebnis : ' + TTask.CurrentTask.Id.ToString + ' : ' + Index.ToString);
Weil die
VCL das Memo1 verwaltet und ggf. neu zeichen will, während ein Pool-Thread gerade die Lines verändert.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!