hsclock is an accurate multi-zone gtk clock. (It can also optionally run in a tty.)
The latest version is available from
<http://www.01.246.ne.jp/~juhp/haskell/hsclock/>.
hsclock uses gtk timeouts to synchronise the time updates to occur on the second or minute "tick" (depending on the clock format string), making it accurate to within milliseconds. (Of course your system clock needs to be synchronised to an accurate time source (say using ntp), for this to be meaningful.)
It can display the times in an arbitray number of timezones in one long window, limited only by the screen resolution and default font size.
To build it you need ghc-5.02 or later and gtk+hs.
% hsclock --help
lists the options. Then try to run
% hsclock <zone1> <zone2> <zone3> ...
where <zone> can be any valid value of the environment variable TZ, typically a file path relative to your zoneinfo directory (on my system it is "/usr/share/zoneinfo/"). For example eg "hsclock EST5EDT GB Japan" displays the time on the US East Coast, in Britain and Japan, as does "hsclock US/Eastern Europe/London Asia/Tokyo".
