Hot to change specific column header color only in datagridview?

First in your DataGridView you need to set EnableHeadersVisualStyles to false. After you've done that you can set the individual header style on each column.

        DataGridViewColumn dataGridViewColumn = dataGridView1.Columns[0];
        dataGridViewColumn.HeaderCell.Style.BackColor = Color.Magenta;
        dataGridViewColumn.HeaderCell.Style.ForeColor = Color.Yellow;

Do it in this way

DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
{
     col.Name = "ColumnName";
     col.HeaderText = "HeaderName";
     col.DefaultCellStyle.ForeColor = Color.White;
     col.HeaderCell.Style.BackColor = Color.Red; //Column Header Color
     this.dataGridView1.Columns.Add(col);
}

Create a method name called SetUpDataGridView

private void SetUpDataGridView()
{
  dataGridView1.Columns[0].HeaderText = "Emp.Id";         
  dataGridView1.Columns[0].HeaderCell.Style.BackColor = Color.Chartreuse;
  dataGridView1.Columns[1].HeaderText = "Emp. Name";
  dataGridView1.Columns[1].HeaderCell.Style.BackColor = Color.Fuchsia;
}

Add the method in Form_Load. You can add different color for every header