これをチェックしたところ、非常に似ていますが、水平ではなく垂直スクロール用です。
グループ化されたデータを含むデータグリッドがあり、次のようになります。
列を水平方向にスクロールするときに、グループ ヘッダー情報を表示したままにしたいだけです。ただし、ヘッダーはウィンドウからスクロールします。
これは xaml (元はhereから) で、datagrid グループ スタイルのみを対象としています。
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=ReferralDate}" FontWeight="Bold" Padding="3"/>
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GroupItem}},
Converter={StaticResource ResourceKey=groupTitleVisitsConverter}}"
Foreground="White" FontWeight="Bold"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>