Have you tried the built-in Windows Task Scheduler? At least in Win 9x the Task Scheduler can start programs at specific times (etc) and there is an option in the advanced properties to stop a task if it continues for more than a certain time.

There are other task schedulers, which may or may not have more options, such as Freebyte Task Scheduler or those listed here (both links found in a quick Google search, so you'll have to check if specific programs can schedule the start and end time the way you wish).

If you need more flexibility, try a macro or automation program (though they would have a steeper learning curve), such as AutoHotkey, AutoIt or those listed here (search for 'Macros' to get the relevant section of the list).