Че сложного-то? Головой немного подумать всего-то надо...
Код:
procedure TForm1.MyResize(NewWidth : Integer);
var
I : Integer;
N : Integer;
S : Integer;
begin
N := Abs(NewWidth - Self.Width);
S := Sign(NewWidth - Self.Width);
For I := 1 To N Do
Begin
Self.Width := Self.Width + S;
Sleep(100); // <-- задержка
Application.ProcessMessages; // <-- обработать сообщения, чтоб все не висло
// Self.Update; // <-- иногда само не отрисовывается. тогда - раскоменнтировать.
End;
end;