Arduino 1.0 -> Serial.print NOT asynchronous?

If I do timeend - timebegin. I get a value of 5ms. So the serial.print function took 5ms before returning.

Since you didn't show setup, where Serial.begin() sets the speed, it's impossible for anyone else to replicate your test.

At reasonable baud rates, millis() is not particularly good as a timer. It's like using a calendar to time how long it takes your wife to get ready to go somewhere. Makes you feel like you are doing something, but that's about all.

Try using micros(), instead. Also, post ALL of your code.