Really, I haven't got a clue... I have no idea how to keep dispersed systems in-sync. But, I'm sure this has been done before, so you shouldn't have to "invent" something. GPS might be fine, because it's
relative skew that's important. And, I assume they would all be close-enough to each other that they'd be using the same GPS satellite.
My
guess is that it would be best to use "something else" for the critical timing. Then, you can use the Arduino (or PIC, or laptop, or whatever) for control & data collection. I'm assuming the data is not coming-in at a
rate of 100nS, just that you have to make a 100nS measurement every once in awhile. As an analogy, I've got an oscilloscope in front or me... The data might be coming-in at a MHz (or kHz) rate, but I can only "see" it if I capture & hold it, or if it's repetative. If I look at a CPU address or data line in real-time it just looks like a mess. (Sometimes, it's still helpful to look at, because I can see if I'm not getting the full 5V, or I can see if it's "stuck" at 0V or 5V, or something like that...)
If it helps, a "typical off-the-shelf" crystal is rated for accuracy/drift around 50-100ppm. So, I would expect the Arduino to have accruacy & drift within that range.
As a student, aren't those questions your responsibility? Are you essentially asking us to help you cheat?
At the university level, "working together" and the use of outside resources & advice is generally
encouraged! (Except on exams.

) At least, that's how it is in Science & Engineering, here in the U.S.