Comme vous utilisez toujours le temps universel, je ne vois pas quel avantage DateTimeOffset vous donne par rapport à DateTime. Vous pouvez utiliser DateTime.UtcNow, qui a la même précision que DateTime de SQL Server.
Alternativement, comme vous utilisez Sql Server 2008, vous pouvez stocker votre champ en tant que DateTime2 dans la base de données :cela a la précision supplémentaire dont vous avez besoin.