I hope you are a good programmer and know electronics.
Why do you want timing to the millisecond, and only 20 samples a second ? May the timing drift a little ?
An microSD card can be added to the Arduino, storing is about 4kbyte per second.
The MPU-6050 with the i2cdevlib has a default sample rate of 100Hz. So up to 100Hz everything is okay and you can store the data.
You can also send the data to the computer via the serial over usb communication.
The RTC ds1307 can be synchronized with the Arduino timing:
http://playground.arduino.cc/Code/time
Use the link to pcjr.com for the newer version:
Time Library, Timekeeping and Time/Date Manipulation on Teensy
But I don't know about millisecond accuracy.