I know that there are a lot of questions on this topic. I have been through all of them but nothing seems to help.
How to sort by clicking on column header?
Here is the blog post that really really helped me.
Presenting the SortableBindableList
Also, check out How do I implement automatic sorting of DataGridView? which has examples of this and another library.