I don't know about wordwrapping listviews, but I can explain a little about hooks.
There is no black magic, or voodoo to hooks, they are simply a small structure in which you place a pointer to a function. When MUI wants to display something in the listview (or NListView), it jumps to the routine you provided in the hook structure, and you do the drawing for it. Usually the info needed to draw the item is passed in processor registers.
There are examples in the RKMs, and in the MUI devkit.