You can consider TAdvGridColumnPicker as an advanced version of the fieldchooser component demonstrated in sample 29 http://www.tmssoftware.com/site/asg29.asp
Basically, TAdvGridColumnPicker does all grid initialization for you, so, it is sufficient to drop it on the form, assign the grid and call TAdvGridColumnPicker.Show