Technically speaking in this case "laat" = "late" - "te laat" = "too late". However, in a lot of these cases, just as in English, it does not change the meaning of the sentence if you leave "te"/"too" out, but including it can put more emphasis on the being late.
So this sentence could also have been "Waarom ben je altijd laat?"
It also can depend on the verb and context, but again that is fairly similar in English. For example:
"He arrives late at the airport" - "Hij arriveert laat op het vliegveld", only gives an indication that he arrives late.
"He arrives too late at the airport" - "Hij arriveert te laat op het vliegveld", indicates that he arrives too late for something.
I don't agree, the way I perceive it in Dutch is very clear: laat is later than expected/desireable, but not too late/passed the dealine. Te laat is too late/passed the dealine. In English this distinction is not so clear, since too is sometimes left out without changing the meaning, I think leaving out te in Dutch always changes the meaning.