One test I'd try is to go to the sql agent and change the schedule there. The only problem is that as soon as the user goes back to the schedule UI that will get dropped and recreated.
I'm really warry about changing the system tables of MS and I wouldn't recommend that route even if I have no alternatives to offer.
What I've done in the past for a user is to select all of it's subscriptions and refire them all at once if for some reason the server was offline during the night. Maybe you could adapt this to fire them only 1 at a time when the server has some breathing time...
DECLARE @Exec AS VARCHAR(MAX)
SELECT @Exec = COALESCE(@Exec + 'EXEC msdb.dbo.sp_start_job @job_name = ''' + CAST(Scd.ScheduleID AS VARCHAR(MAX)) + ''';', 'EXEC msdb.dbo.sp_start_job @job_name = ''' + CAST(Scd.ScheduleID AS VARCHAR(MAX)) + ''';') FROM dbo.Schedule Scd
INNER JOIN dbo.Users U
ON Scd.CreatedById = U.UserID
WHERE U.UserName = 'that darn user'
Put that in a loop with waitfor and schedule the job to run whenever you know the server is less busy.
You could create another script that disable all the jobs for that users based on the name of the schedule you should be able to track them that way. If you disable the schedule they won't run, but you'll be able to fire them whenever you want.