Un TImageList es un TComponentt.
Se supone que puedes guardar un componente en un Stream y en disco usando un código similar a este:
Código Delphi
[-]
var
ms : TMemoryStream;
begin
ms := TMemoryStream.Create;
try
ms.WriteComponent(ImageList1) ;
ms.Position := 0;
ms.SaveToFile('c:\stream');
finally
ms.Free;
end;
De forma similar tienes los métodos análogos para recuperarlo de disco y volver a "volcarlo" a un componente.
Haz alguna prueba a ver qué tal.
La técnica es similar a la que se explica aquí para
clonar un form.