Thank you for all the suggestions. I ended up with:
void setup () {
while (incorrect time) {
wait for time to be sent over serial port;}
continue with setup
if (second() != 0) {
delay((60 - second()) * 1000);}
}
void loop () {
read sensors and log data
}
Thank you Morris, I had implemented that same idea, which didn't work because I forgot about the conversion to millis to properly delay.