I want to set a machine timer resolution to 0.5ms.
Sysinternal utility reports that the min clock resolution is 0.5ms so it can be done.
P.S. I know how to
The best you can get out the Win32 API is one millisecond with timeBeginPeriod and timeSetEvent. Maybe your HAL can do better but that's academic, you cannot write device driver code in C#.