Can the Arduino do two things at one time?

Going back to the question in the subject: "Can the Arduino do two things at one time?" the answer is NO.

BUT - by switching between two tasks often enough it will appear to do two (or three, four...) things at the same time.

This is why you see so many posts talk about the "Blink without delay" example, because neither of your two tasks may block - that is, sit in a loop doing something that takes time. They must do such tasks a small step at a time, remember how far they got, and when the loop() gets round to the again, take the next tiny step.

The trick of the "Blink without delay" technique is that the large "delay()" is actually just taken off in small bites by just executing millis() to look at the clock. See if Arduino Playground - AvoidDelay helps explaining this.

Now, back to the program. I am sorry I have not studied your code. I have just looked if it had the classical error - using delay(). Yep.

"delay()" and "two things at once" are mutually exclusive.