You can do that using timers. Define a function to print out the time in the echo area:
(defun announce-time ()
(message (format "The time is %s" (format-time-string "%H:%M" (current-time)))))
and set up a timer to run it at some initial time and every hour thereafter:
(run-at-time "00:00" 3600 #'announce-time)
You can cancel the timer if you don't ...