Hast du schon versucht das Verschieben Windows zu überlassen?
OnMouseDown Ereignis einfach auch im TImage zuweisen.
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
Perform( wm_SysCommand, $F012, 0 );
end;