After I tried to sort the channels in the DVBViewer Channel list twice and both times the program crashed after a couple of program switches I decided to make my own channel list, which works independently from the viewer software and so it doesn't crash when DVBViewer does...
Anyway, I also added the possibility to make categories and sub-categories (with unlimited depth, but I guess it won't allow more than 256 layers or so). The program switches the channels by using the -c... parameter provided by DVBViewer. For each channel you have one setting (usually hid, but can be made visible via the popup menu or the right cursor key), where you need to enter the channel name, the channel number, the service ID (with ":" in front) or the channel name followed by ":"+service ID.
You can easily move the channels or folders in the list. Most functions are accessible via the keyboard, so you don't even need your mouse. You can make the window stay on top and make it partially transparent (10%, 20%, ..., 90%).
I basically wrote the whole thing for myself, but if the authors of DVBViewer don't mind and if there is any interest I'm willing to offer it for download. I would include the source code, so everyone can continue developing it. It is written in Delphi 5.
Here's a preview screen shot which basically shows all the functions of the program.