Right. You would use the timer to replace what you are doing in Spin. Better than the date, use a stopwatch for timing, as it will give you better precision. Start the stopwatch, start the timer, and every time the timer ticks do what you are currently doing in each loop (except use the stopwatch elapsed time rather than subtracting times). You still won't be able to get a resolution greater than the resolution of the timer, though.

Of course, that does leave the question of what Spin actually accomplishes. You don't actually DO anything in that method other than spin waiting on nothing. It would allow for a busy wait for a fairly low resolution, probably lower than can actually be achieved using any timer, but what is the point? Busy waiting isn't a great solution for any problem because it ramps your CPU to max, killing performance and gobbling power. In your case, you do pause briefly in each iteration, which should slightly mitigate the cost of the busy wait, but is that enough? What are you doing that requires such a costly timing cycle?