This was a surprising assertion to hear. Maybe on some OS, doing reliable timing is a problem. But with modern audio pipelines, things feel like they are in an extremely good state.
Just move put of focus, and you will see how it handles sending clock. I went to a hardware based, external clock signal, and using spp to force syncs between my tools, and use rtmidi+c
MIDI over MIDI cables is fundamentally not a tight protocol. If you play a four note chord there's a significant time offset between the first and last note, even with running status.
With early MIDI you had a lot of information going down a single cable, so you might have a couple of drum hits, a chord, maybe a bass and lead note all at the same moment.
Cabled MIDI can't handle that. It doesn't have the bandwidth.
Traditional 80s/90s hardware was also slow to respond because the microprocessors were underpowered. So you often had timing slop on both send and receive.
MIDI over USB should be much tighter because the bandwidth is a good few orders of magnitude higher. Receive slop can still be a problem, but much less than it used to be.
MIDI in a DAW sent directly to VSTs should be sample-accurate, but not everyone manages that. You'll often get a pause at the loop point in Ableton, for example.
The faster the CPU the less of problem this is.
If you're rendering to disk instead of playing live it shouldn't be a problem at all.
I am not talking of MIDI in a DAW, without any physical connections, this works just fine.
"should be" != "is". The Atari ST had a ROCK SOLID MIDI clock and direct, bare-metal hardware access that meant the CPU could control the signals directly, with known precise timing. This is simply not possible with modern operating systems and hardware interfaces because of all the abstraction layers, with attendant time indeterminacy, that have been inserted in between. It's physically impossible to match the low latency and jitter of an Atari ST doing MIDI with a modern system.
Edit: Actually midi note on events that are being sent to devices do _not_ have a timestamp! Only events that are persisted in a file may have timstamps.