Мне кажется, не совсем понятно, какова иерархия между вашими элементами управления. DataContext работает следующим образом: наследуется от элемента управления верхнего уровня своим дочерним элементам. В этом случае, если WPF TabItem является родительским элементом управления ListView, ListView будет иметь такой же DataContext, что и TabItem.
Кроме того, если я правильно понял, вы можете сделать это:
<TabItem>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TabItem}}, Path=DataContext.MyPropInProductObject}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</TabItem>
, где интересной частью является Относительный источник, для которого установлено значение FindAncestor, и, поскольку вы знаете, что DataContext установлен для объекта Product, вы можете запросить желаемое свойство.
HTH