I've got a close friend/roommate who is often late, (I'd say about 25% to 50% of the time, he'll be 15min to 1hour late). I've gotten used to it and it doesn't bother me too much personally.
But it also happens for more important appointments such as going to school (he's a student in master degree), or when he has to go to work (hopefully it never backfired yet, he is tutoring high school students, so they have quite flexible hours).
He'll then say things like "I can't stand this. I'm so late", "It sucks I'm late". And blame it on transportation or anything else. It also results in him being in a bad mood and thinking he's really unlucky.
The problem is when I try to answer by telling him he should plan to be early if he want to be consistently on time, it angers him and he says I'm not supportive.
My point of view is having an "optimal" ride using public transportation is being lucky and you can't really complain about being late when you repeat the same behaviour endlessly and expect a different result. Also he should not complain about things he can't control and start acting on the things he can control.
I'd like to communicate that to him (not on these terms obviously since my goal is to not to have him adopt a defensive stance) and help him change his behaviour to improve slowly but continuously so he ends up stopping to complain about being late.
Edit : We are French (if cultural context matters) and as said in the comments I'd really like to help him fix this behaviour as I don't want him to stop sharing his mood and problems with me.