Vo WinAPI sa to robi tusim callback funkciou - notification message WM_CTLCOLORBTN, http://msdn.microsoft.com/en-us/library/bb761849(VS .85).aspx
Pre Delphi a TButton si skus pozriet tu http://delphi.about.com/library/bluc/ucvcl.htm zdrojaky TColorButton (nerobim s delphi, len som to nasiel googlom), predpokladam ale ze tam bude dorobene spracovanie toho notification message WM_CTLCOLORBTN.