DataGridのスタイルとテンプレートに関するこのドキュメントから始めます。
このように見えるテンプレートの部分に注意してください
<Grid Grid.Column="1"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset,
RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ScrollBar x:Name="PART_HorizontalScrollBar"
Grid.Column="1"
Orientation="Horizontal"
ViewportSize="{TemplateBinding ViewportWidth}"
Maximum="{TemplateBinding ScrollableWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay,
RelativeSource={RelativeSource TemplatedParent}}"/>
</Grid>
この部分は、DataGridの下部のスクロールバー領域を定義します。NonFrozenColumnsViewportHorizontalOffsetへのバインディングに注意してください。この値によって、空の左側の領域の幅が決まります。
DataGridテンプレート全体をプロジェクトのアプリケーションリソースのスタイルにコピーできます。次に、Grid.Column = "0"を使用して独自の名前付き水平StackPanelを挿入し(ScrollBarの兄弟)、新しいStackPanelの子として独自の子ボタンやテキストなどを追加できます。