For my prototype the UITextList worked great. To get it to automatically scroll to the last entry, I made a copy of UITextList and modified it (made other changes too, it's a great example to work from). All you need to do is set mScroll = 0 in the Add() method right before the call to UpdateVisibleText(). Then, whenever a new message is added, no matter where the user is in the scroll buffer, it will scroll to the last entered message.
Hope that helps!