Take a look at the Topic List Previews plugin. I recently added a Masonry ‘renderer’ to it (and continue to enhance that). Your screen shot is not a million miles away from that work.
It’s surprisingly straightforward once you get into the groove.
You just need to override the topic-list and topic-list-item components and their templates and add your custom CSS.
Each of the internal elements in your above screenshot can just be divs you arrange in e.g. a CSS grid which you render for each topic.
You could fork TLP as a head start.