I was in the same boat before when interviewing a candidate — he showed up half an hour late, and didn't offer an apology. This also really annoyed me, as I had rearranged my afternoon for the interview.
So I indirectly prompted him to give an explanation on why he was late (e.g. "Did you have trouble finding the place?") — but it turns out he wasn't late at all. He had been in reception since 5 minutes before the scheduled time, but our internal communication chain (reception -> HR -> me, or however it went), had broken down, and no one told me he was there until 30 minutes after.
I'm guessing the reason he didn't bring it up was that he didn't want to make a fuss while in interview ('Why did you keep me hanging around for 35 minutes!').
So just to offer the alternative view that you'd want to make sure you're getting annoyed at the right person!