During initial setup, RHEL asks you to pick your time zone and provide the address of an NTP server. I suspect that your time zone is set wrong, and it is periodically "fixing" your time changes to match what the NTP server says. It is also possible that you gave the IP of an NTP server that itself is not reliably on the right time.
To check this, run `system-config-date` as root.
If the settings there look fine, try:
$ ntpdate -q pool.ntp.org
If your time setup is correct, you should get several answers with an "offset" value well under 1 second, and the last line should give correct local time. Substitute the time server you used for `pool.ntp.org` above if you changed it during setup, to ensure that that server is working correctly.
If you need this system to always obey the hardware RTC and never do NTP network time synchronization, you can disable `ntpd` by saying:
# service ntpd stop
# chkconfig --del ntpd