I got a working version of a basic PickList control. It returns the Items moved - which is very nice to know. I'm sure there are better ways of writting this. See site for updates, history, other controls and their source code.
The ImageListBox controls represent the underling data as a DataSet although a DataTable would sufice. For some reason storing an image to the DataSet didn't work so I store the images in an ImageList.
The code has gone through a couple changes and probably will go through some more. I just thought people might like to use this code for a starting point to writing a more rebust PickList. I'll work on it as time premits.
I would love to know how to autoresize the control. I haven't tested it with large amounts of items. Hopefully it is useful to someone out there.
Updated Picklist here. See CodeProject article.