I haven't tried this myself, but…. This can be implemented in (at least) the following ways:
1. (2.2+) Via the autodeploy option for deployment targets (possibly in conjunction with scheduled promotion and workflow) 2. Via the use of an external timer (eg. cron / at) that calls a Web Script at regular intervals, with the Web Script initiating deployment.
Source code for the cron approach is available in the wcm-deployment project on the forge (see http://forge.alfresco.com/projects/wcm-deployment/). I think it was developed against Alfresco v2.1 and may require changes to work on v3.0. I'm not sure though.