I know nothing about train driving and whatever the line restrictions that make the Sleeper slow in the Highlands lz but is the above even possible? Why not just carry on driving at that speed if it means you get to Fort William quicker?
Sectional Running Times are such that if the time allowed to traverse between consecutive points is calculated using line speed then the only way to make up time is to:
Skip station calls or do them quicker (shorter dwell time)
Brake harsher into a station call
Accelerate harder out of a station call.
None of which are conducive to passenger comfort (unless no one is scheduled to get off the train and it is 'set down' only.
The bits that can allow you to make up time, for example any engineering, performance, or other allowance doesn't really equate to that much of a saving. Maybe a half-dozen minutes if your lucky.
There is also the train path to consider. As happens with many XC trains, when delayed. They'll happily fall into the path of the following XC an hour later (if the service is hourly) as this is there path each bour.
If you fall behind other services, it may be that you're following that service (and others) because they're on time and you're not. There isnt really a way round it, without affecting other services and causing more delay.
There could be any number of reasons why the delay hovers around 59 minutes, without any malice involved.
The hourly service pattern has had me a few times where trains can usually arrive a minute or so early each hour at certain stations (for various reasons) reducing a 60+ minute delay down to 58 / 59.