The "problem" is not with the DataGridControl, but rather with the ScrollViewer. It is not the DataGrid that handles the MouseWheel, but the ScrollViewer inside the DataGrid. You will have the same problem with a simple ListBox and I haven't found a way to prevent the ScrollViewer behaving this way. The solution, similar to what you tried, is to create your own ScrollViewer, override the OnMouseWheel and only call base when it IsFocused. Don't set the e.Handled to True, otherwise the event will stop propagating and won't reach your outermost ScrollViewer.
Next, you need to tell the DataGrid to use this custom ScrollViewer. This is done by providing a new ControlTemplate to it, which is not necessarily obvious. You can simply copy the one provided in the XAML files installed with the product. For example:
<xcdg:DataGridControl.Template>
<ControlTemplate TargetType="xcdg:DataGridControl">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<AdornerDecorator x:Name="PART_DragDropAdornerDecorator">
<local:MyScrollViewer x:Name="PART_ScrollViewer"
ShowRowSelectorPane="{Binding RelativeSource={RelativeSource Self}, Path=(xcdg:DataGridControl.DataGridContext).ShowRowSelectorPane}"
RowSelectorPaneWidth="{Binding RelativeSource={RelativeSource Self}, Path=(xcdg:DataGridControl.DataGridContext).RowSelectorPaneWidth}"
Padding="{TemplateBinding Padding}">
<xcdg:TableViewItemsHost />
</local:MyScrollViewer>
</AdornerDecorator>
</Border>
</ControlTemplate>
</xcdg:DataGridControl.Template>
The problem with this solution is that the FixedHeaders and FixedFooters sections of the DataGrid won't be affected because they are in their own ScrollViewer. The easiest workaround is to avoid using FixedHeaders and FixedFooters. The thorough solution is to also provide a new Template for your custom ScrollViewer based on the TableViewScrollViewer template. Again, you can find this much more intricate template in the XAML files installed with the product (TableViewScrollViewer.generic.xaml).
The alternative to all this would be to disable the DataGridControl (IsEnabled or IsHitTestVisible), but I doubt that it would be acceptable!