They don't provide any guarantees other than best effort. Go is not a
hard real time programming language.
In the current implementation, if you are adding and/or removing a
very large number of timers from different goroutines running
concurrently, then I think the bottleneck would be the single lock on
runtime.timers. If you have a very large number of tickers, then I
think the bottleneck would be the runtime managing the heap of timers
that keeps the next one to fire on the top. Those are just my
guesses, though, I haven't tried to verify them.
Ian