See the help topic on "Scheduling TestComplete Runs" for how to schedule.
As for duration, as far as I know, there's not a way to set a specific time for how long. What I do is, if I want the test to run for an hour, I time how long a single iteration takes. Than I divide that time into 1 hour and determine from that how many iterations will give me the duration I'm looking for and configurat my tests that way.
As for Ramp Up/Down, using different test items can do this by having different iterations executing in sequence that will run an increasing load against the server until you get to your peak load and then on the "back end" do the same thing.