The simplest way to create such a list is to use Dynamic Component extension.
To learn how you can create a list as above, you can take a look at some example lists made with Dynamic Components.
Hope it helps!