Create a restore job and use it for every restore. Then you'll be able to see the duration in job history. In case you need to keep track of restores over a longer time (not just about the last few restores), copy the data into your table. Job history only saves a limited number of rows for each job.
Here is how you can get some info about job history (there are more columns, this is just an example - you may add failure messages and other, if you need it). The example works for both SQLS2000 and 2005.
SELECT job.[name] as JobName, his.step_id, his.step_name, his.run_status, his.run_date, his.run_duration, his.server, step.database_name
from msdb..sysjobs job
JOIN msdb..sysjobhistory his ON his.job_id = job.job_id
JOIN msdb..sysjobsteps step ON step.job_id =his.job_id AND step.step_id=his.step_id
ORDER BY job.[name], his.step_id