Yair,
Your comments sounds very reasonable. I did modification of Karissa's code for my needs, but my changes doesn't include anything what you mentioned. I do deffer FP updates outside the xcontrol code. What about autowidth feature, I simply don't need it and made it disableable. Still using listbox as a storage area. Your last suggestion is the best.
What changes I did, besides the enabling of some native listbox properties like Visible Items group, I made columns width ajustable programmatically in addition to autowidth. A column can be made hidden. Also, I modified the Value Filter greatly. The original one could do AND opearation only, but I was needed OR. So now my filter can process AND/OR logic but does it sequentially (doesn't undestand brackets). Also, UI for value filters displays column names now instead of number and doesn't display hidden columns (while you still can filter by hidden columns programmatically). One more addition, selected row kept selected through sorting or filtering process. All these changes might be not made the optimal way, but works great for my purposes (if don't forget to deffer FP updates). If somebody interested, I may post the code.