Th reason e.Index never gets higher than 2 is that your client area will not hold 2 columns. If you want to see all the columns, no matter what the size of the client area, then you will have specially size each column down to some size that will allow all the columns to be visible in the given client area. One way to do this is to use the proportional sizing. The fillrightcolumn only makes sense if you know your client area is large enough to see all the columns.
This means that it is likely you will not be able to see the full header text for every column. Exactly how you want to handle this is up to you.
Wrap the headerText and do not change the row height?
Wrap the heatertext and resize the row height so you see it all?
Do not wrap the header text, clipping it instead?
Or, something else?
You can do any of these thing as well as other things, but fully seeing every header text on a single line is only possible if you make sure your client area is large enough to make this possible.
Here is a sample showing the above options.
10560-1_1023.zip