The system time is kept in the kernel, and maintained by it. The only other solution other than what Porter and Perderabo mentioned is to have a small dedicated time-warped box that runs without ntpd. Or play with TZ.
If whatever you're using DOES NOT use UTC, but calls libc localtime, then you can create a custom timezone. POSIX compliant systems are required to have ways to set timezones with almost any offset from UTC. Start all of your regressions in the special timezone. How you set up your timezone is totally system dependent (POSIX allows for three methods), but you should be able to accomplish this with TZ variable alone.
example my ZZT timezone:
Code:
$> export TZ=ZZT6:30:22
$> date
Thu Sep 27 07:25:51 ZZT 2007
$> export TZ=CST6CDT
$> date
Thu Sep 27 08:56:34 CDT 2007