Do you really need a precise timer or what you really need is something that give a sort? For example:
static class AutoIncrement
{
    private static long num;
    public static long Current
    {
        get
        {
            return Interlocked.Increment(ref num);
        }
    }
}
Console.WriteLine(AutoIncrement.Current);
Console.WriteLine(AutoIncrement.Current);
Console.WriteLine(AutoIncrement.Current);
Console.WriteLine(AutoIncrement.Current);
Console.WriteLine(AutoIncrement.Current);
This is guaranteed to be unique, and to change every time, and to be sorted. Its precision is better than microsecond. Its precision is absolute on a single PC.
or if you really want Timestamps...
static class AutoIncrement
{
    private static long lastDate;
    public static DateTime Current
    {
        get
        {
            long lastDateOrig, lastDateNew;
            do
            {
                lastDateOrig = lastDate;
                lastDateNew = lastDateOrig + 1;
                lastDateNew = Math.Max(DateTime.UtcNow.Ticks, lastDateNew);
            }
            while (Interlocked.CompareExchange(ref lastDate, lastDateNew, lastDateOrig) != lastDateOrig);
            return new DateTime(lastDateNew, DateTimeKind.Utc);
        }
    }
}
DateTime ac = AutoIncrement.Current;
Console.WriteLine(CultureInfo.InvariantCulture, "{0} {1:yyyy/MM/dd HH:mm:ss.fffffff}", ac.Ticks, ac);
This last variant uses as a base DateTime.UtcNow, but each call if it isn't changed, it increments it by one.