In order to place a rectangle round the contents of a whole column in a Silverlight Grid you simply place the Rectangle as the last child item in the Grid and assign the property Grid.RowSpan on it to the number of rows in the grid and Grid.Column to the column you wish to highlight. E.g.:-
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<!-- Row Definitions (say 4 in this case)-->
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!-- Column definitions -->
</Grid.ColumnDefinitions>
<!-- Grid contents -->
<Rectangle Grid.RowSpan="4" Grid.Column="1" Stroke="Blue" StrokeThickness="1" />
</Grid>
Having said that it would seem to be hard work to manage a Grid to display something data driven like a product matrix. You state that a DataGrid would work for you if it could render "rows" horizontally. Well a ListBox can be styled that way so that is what I'd been inclined to use.