Это зависит от того, чего вы хотите достичь.
Если вам требуется, чтобы на всех итерациях использовалось наиболее точное время, то вариант 1 - это путь.
Если вам требуется, чтобы на всех итерациях использовалось одинаковое время, то вариант 2 - это путь.
Я бы не стал сильно беспокоиться о производительности вызова DateTime.Now, если вы уже не подтвердили, что это имеет значение для вашего приложения. Убедитесь, что ваша программа ведет себя правильно важнее.