Все просто. Через "невидимый" фрэйме (или iframe) каждые н секунд запрашиваем с сервера данные (к примеру посылая ID сообщения, которое мы последний раз получили) Сервер в ответ (если что-то есть) сбрасывает счетчик и выдает все сообщения с ID больше чем последнее. Добавляем сообщения в уже "видимый" фрэйм (...innerHTML+='whatever'). Делал в 2000 году подобное, можешь глянуть тут: www.posidelki.net