Here is the code I used. I tried setting VerticalAlignment to Top, but when the row details are shown (expand to show), the button moves to the center of the row.
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Grid>
<Button x:Name="c_expandCollapseBtn" Cursor="Hand" Click="OnExpandCollapseClick" Content="+"
MinHeight="8" MinWidth="15" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</Grid>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
you are setting the alignment of the buttons content.
heres a style that places the row header content presenter at the Top.
EDIT