I do not believe there is an explicit support for this type of operation. But you can create a good enough solution.
If your service is set to automatic startup then it's safe to assume that the first StartUp is for system startup. Any subsequent startup is a result of the user taking a specific action which caused the service to restart. You can use these two items to build a solution.
Public Class MyService
...
Private m_first as Boolean = True
Protected Overrides Sub OnStart(args as String())
If m_first Then
m_first = False
Thread.Sleep(TimeSpan.FromMinutes(5))
End If
ActuallyStart()
End Sub
End Class