This is something you should be able to achieve pretty much entirely in XAML. Basically, you're going to want to put a ContentPresenter in the place of the Label and composite a Label as the default content in there. Then, you're just going to switch the Content depending on a trigger condition inside the DataTemplate.
<DataGridTemplateColumn x:Key="rowRegroupement" MinWidth="140" Width="1*">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label x:Name="lblRegLib" Grid.Row="0" Content="{x:Static resx:resTabBord.lblAchatsBud}"/>
<Rectangle Grid.Row="1" Fill="{StaticResource scbGrey2}" Margin="-7, 2" Height="1.5" />
<TextBox x:Name="txtRegLib" Grid.Row="2" Margin="2" Height="24" Visibility="{Binding ElementName=ucTabBord, Path=ModeAff, Converter={StaticResource BoolToVisibility}, ConverterParameter=true}"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsActive}" Value="True">
<Setter TargetName="lblRegLib" Property="Content" Value="Test" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
I am just using IsActive as a demonstration that it's possible to trigger changes in the code just by responding to binding changes.