Wow.. isn't that unprofessional! I appreciate that you took the initiative to go talk to him. Looks like you were also very polite about conveying how his erratic show-ups at work are inconveniencing everyone.
While I can empathize with how he must be feeling due to all the stress at home, I see no reason why he should be acting like that. I myself haven't dealt with difficult co-workers specifically; but in general I feel like many grown-ups surprisingly lack basic social etiquette (saying things like 'junior-high'). Probably the apology hardly makes any difference to the way you're feeling right now.
We tend to take maturity for granted and expect everyone out there to handle/react maturely, but I've met a surprising number of adults outside of work (older than me) who lack it completely!
On the flip side, you should feel so great about yourself for taking responsibility, being polite and conveying your message across without throwing a tantrum