Introduction: You want to present a table with a ListView, but you should display columns as rows.
Problem: The only out-of-the-box view for the WPF ListView control is GridView. GridView was designed to work with columns. It displays headers and rows as two parts, using a stack layout by default. Changing the stack orientation to horizontal will not work since both the headers presenter and rows presenter are displaying children horizontally.
Solution #1: Do not use ListView. Use a ListBox with custom template.
Solution #2: Create a custom ListView view, derived from the View base class (a big headache).
Solution #3: Cheat a bit. Rotate and Flip both the headers and rows presenters, and change the stack items panel orientation to horizontal. Then you should Flip and Rotate back each header and row content.
Download the code from here.