<p>In Windows Server 2003, how I can check if my program is running in local console ("on the screen of the server machine") instead of remote session?</p>

<p>I'm using Delphi Win32, so any Windows API based method should work..</p>

Wouldn't the session number tell you this ?
ProcessIdToSessionId (GetCurrentProcessId(),&dwSessionNum)
You'd have to check the OS version as well, using GetVersionEx: for everything up to XP/Server 2003 session 0 is local (service or interactive console), anything higher is virtual. For Vista/2008 session 0 and 1 are both local (0 is service, 1 is console), everything else is virtual.
I'm guessing your Delphi units would declare the session number as var, so you wouldn't need the ampersand.