Except for manual prioritization of the virtualization process on the Dom0, I’m not aware of any way to alter the priority of a DomU, especially not concerning I/O.
Have you had a look at the I/O (and CPU) utilization of Dom0 during that period? It’d be interesting to see which resources are actually delaying the DomU’s I/O request.
If you don’t have any monitoring of these parameters active, i.e. SNMP-based, I’d recommend to start a run of both “vmstat” and “iostat” per cron or manually, logging the output and checking for correlations of high iowait and the symptoms you see in the DomU. “iostat” may help to identify which I/O resourse (disk) is actually loaded during that phase, at least as long as it is represented by a Dom0 block device (local disks, SAN LUNs).
This may help to pin-point the actual root cause of the high delay experienced by your DomU - be it one of the DomUs, the Dom0 or some other component.
If the delaying resources are remote to your Dom0, you may also need to verify the remote service offering the resource(s) and the access path to that resource.
If you find that it’s some local disk that’s under heavy load, you might want to look into a faster storage solution (SSD caching / faster disks / …, always depending on the actual use case) - but those discussions would have to wait until the actual bottle neck is identified.
Oh, and a shot into the sky at night : You’re not by chance running some (MD-)RAID5/6 underneath the DomUs virtual disk, which is getting scrubbed Friday mornings?