You could try something like this:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" Grid.Column="0">
<TextBlock Text="Group 1"/>
<WrapPanel>
<TextBlock Text="Item 1, "/>
<TextBlock Text="Item 2, "/>
<TextBlock Text="Item 3, "/>
<TextBlock Text="Item 4"/>
</WrapPanel>
</StackPanel>
<StackPanel Orientation="Vertical" Grid.Column="1">
<TextBlock Text="Group 2"/>
<WrapPanel>
<TextBlock Text="Item 1, "/>
<TextBlock Text="Item 2, "/>
<TextBlock Text="Item 3, "/>
<TextBlock Text="Item 4"/>
</WrapPanel>
</StackPanel>
<StackPanel Orientation="Vertical" Grid.Column="2" Width="auto">
<TextBlock Text="Group 3"/>
<WrapPanel>
<TextBlock Text="Item 1, "/>
<TextBlock Text="Item 2, "/>
<TextBlock Text="Item 3, "/>
<TextBlock Text="Item 4"/>
</WrapPanel>
</StackPanel>
</Grid>
Instead of putting the items as TextBlocks (with hard coded commas), you would likely use an itemscontrol (see this answer).
Here is a sample screenshot:
