DC motor or Stepper motor????

You could get a very low-geared DC motor (look up Pololu's website for examples) and, perhaps, add even more reduction gearing as well as using the Arduino analogueWrite() to further control the speed.

However it seems to me this is a case where a stepper motor with a suitable stepper motor driver board that allows microstepping would be the easiest to control. A motor with 200 full steps per revolution would have 3200 with 16 times microstepping. This assumes that the fact that the motor moves in steps, rather than smoothly isn't a problem.

You need also to be aware that the Arduino's 16MHz crystal clock is not all that accurate - nowhere near as good as a time clock.

...R