They are doing it by actually having separate pages for each letter.
Didn't you notice that the page changes from "a.aspx" to "b.aspx" (etc.) as you change letters?
*IF* your list of *ALL* events/letters isn't too long, then doing it in JS code is pretty trivial. You'd just put each letter into a separate "panel" and then activate one panel at a time.
Instead of using document.write, it would probably make more sense to use XMLHTTP in synchronous mode (that is, SJAX as opposed to AJAX) to get the contents, put them in your JS array, sort the array, and *THEN* create the panels.
If you showed us an example of what that "feed" sends to you, it would be easier to help.
An optimist sees the glass as half full.
A pessimist sees the glass as half empty.
A realist drinks it no matter how much there is.