Veja se isso lhe ajuda :
dataGridView1.AutoGenerateColumns = false;
List<dynamic> lista = new List<dynamic>();
lista.Add(new { NOME = "DANIEL", IDADE = 20 });
lista.Add(new { NOME = "DANIEL1", IDADE = 21 });
lista.Add(new { NOME = "DANIEL2", IDADE = 22 });
lista.Add(new { NOME = "DANIEL3", IDADE = 23 });
DataGridViewTextBoxColumn TextboxColumn1 = new DataGridViewTextBoxColumn();
TextboxColumn1.Width = 200;
TextboxColumn1.ReadOnly = true;
TextboxColumn1.DataPropertyName = "NOME";
TextboxColumn1.Name = "NOME";
TextboxColumn1.HeaderText = "Nome";
dataGridView1.Columns.Add(TextboxColumn1);
DataGridViewTextBoxColumn TextboxColumn2 = new DataGridViewTextBoxColumn();
TextboxColumn2.Width = 200;
TextboxColumn2.ReadOnly = true;
TextboxColumn2.DataPropertyName = "IDADE";
TextboxColumn2.Name = "IDADE";
TextboxColumn2.HeaderText = "Nome do Campo";
dataGridView1.Columns.Add(TextboxColumn2);
dataGridView1.DataSource = lista;