Проблема не в TimeSpan, который точен до тиков, что составляет 100 наносекунд.
Проблема в том, что вы используете DateTime.Now для таймера.
DateTime.Now с точностью до 16 мс, я считаю. как уже упоминалось V4Vendetta, вы хотите использовать секундомер, если вам нужны результаты с «высоким разрешением». Секундомер может предоставить вам тики (длинные) или TimeSpan. используйте Timespan для легкой манипуляции (в вашем случае, сложение / вычитание).
Также обратите внимание, что Секундомер предоставляет свойство .IsHighResolution, чтобы увидеть, есть ли у вас более высокая точность, чем Datetime.Now (это всегда верно для PC iirc)