Egentlich sollte das ja gehen. *grmpf*
Versuch mal, die Bedingung umzukehren
Code:
  for(int i=0; i < TX_B_L; i++) 
  { 
       while (!(UCSR0A & (1<<UDRE0))) { } // Warten bis Senden möglich 
        UDR0 = TX_B[i]; 
   }