Посмотрев тут несколько примеров по этому вопросу, решил - что меня это все не устраивает. один пример использовал процедуру SetCapture но она мне не понравилась тем, что контрол теряется и к примеру форму нельзя двигать. другой пример с отловом событий CM_MOUSELEAVE/CM_MOUSEENTER тоже меня не устроил - потому что глючит и когда быстро двигать мышкой не срабатывает. я решил посадить всю эту проверку на таймер задав его интервал к примеру 50 мс и создав событие (см. ниже)
if ((Mouse.CursorPos.X >= Form1.Left) and (Mouse.CursorPos.X = Form1.Top) and (Mouse.CursorPos.Y <= Form1.Top + Form1.Height)) then Form1.Caption := 'Mouse on Form' else