You can set the first column header style to null, so this style won't affect it :
Style:
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.ArticleAttributes, Source={x:Reference control}}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
Columns Definition:
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding ID}" Header="ID" HeaderStyle="{x:Null}"/>
<DataGridTextColumn Binding="{Binding Name}" Header="Name" />
<DataGridTextColumn Binding="{Binding Age}" Header="Age"/>
</DataGrid.Columns>
AutoGenerateColumns
In case your columns are being generated by the dataGrid, you can add an event handler to AutoGeneratingColumn event, then set to null the column which would be the first column in the first call, and then remove the handler:
Add Handler:
dataGrid.AutoGeneratingColumn += DataGrid_AutoGeneratingColumn;
Handler:
private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
e.Column.HeaderStyle = null;
dataGrid.AutoGeneratingColumn -= DataGrid_AutoGeneratingColumn;
}