Telerik UI for WinForms

RadGridView binds to collections of bindable types from many sources including:

RadGridView can bind to a single level of data or multiple levels of hierarchical data.

RadGridView can work in so called Unbound mode, where the grid is not bound to any data and using the grid API,  you specify the data (columns and rows) that will be displayed  dynamically at runtime.