I think there's a possible solution based on an extension called Chameleon. Using Chameleon you can set the VM shopper group on the fly, according to specific conditions.
So perhaps you could set up a special shopper group that has a 20% discount. Then you would make a "rule" in Chameleon that triggers only between 16:00 and 20:00. The "succeed action" in that rule would be to set the shopper group to the new shopper group.
That way, people would be able to see the special prices only during those times. The shopper group switch is not "sticky" i.e. it doesn't permanently assign the person to that shopper group.
Some people use this functionality for setting different pricing for people in different countries (GeoIP), or different domains on their site, so I think it should work fine for time-based things as well. The only issue might be what happens if they have added something to their cart before 20:00 but don't check out in time; but I am sure that could be solved.
www.metamodpro.com/chameleon