Может так? Но я пока только с таймером допер.
ЗЫ Кусок кода
Код:
if form1.ControlAtPos(pt,true,true).ClassType = TButton then
if form1.ControlAtPos(pt,true,true).Tag=54 then
Button1MouseMove(form1.ControlAtPos(pt,true,true),[],pt.X, pt.Y);
в обработчике таймера удали, если используешь OnMouseMove для TButton.