Roel Canicula wrote a private messaging package based on acs-messaging for a client of Solution Grove.
I can dig up the code and send you a copy if you're interested. I beleive this will handle the backend part for you.
But that's only half the battle. Devising a nice UI and how to present it to users is another.
However, if you have the luxury of time I would recommend that you look into COMET.
COMET is different from polling because it establishes a persistent connection between the browser and the server.
This is possible with OpenACS thanks to Gustaf's background delivery proc on the server side. On the browser side, you need to implement "page streaming". Gustaf may have already implemented this (and polling too) on his Ajax Chat app inside xowiki.
Examples of real world web apps that use the concept of COMET include Meebo (www.meebo.com) and Gtalk integration with Gmail.
Furthermore, to enhance UI, you might also want to look into