Ich glaube bei TList musst du dich selbst darum kümmern die Objekte in der Liste freizugeben.
Also beim Destory alle Items durchgehen und diese freigeben.
Mit TObjectList kannst du die Eigenschaft "OwnsObject" setzen. Damit kümmert sich die Liste selbst darum die Items freizugeben beim Aufruf von .Free.
Zu langsam