As Stephane Delcroix mentioned in this other StackOverflow question:-
"Horizontal ListView Xamarin.Forms"
The ListView does not natively support horizontal orientation, so you couldn't use this as your are ideally wanting to bind to an IEnumerable datasource.
There is another hack method mentioned in the following post:-
"How to adjust size of Horizontal ListView in Xamarin.Forms?"
that suggests to use Rotation to get around this, although this will more than likely be quite cumbersome and problematic in cases as rotation will apply outside a normal View bounds, unless it is a square dimension.
That would allow you to use your bindable datasource however by using the ItemTemplate property of the ListView and creating your DataTemplate with other control bindings specified in it.
It is however not ideal with the rotation hack, and personally I wouldn't even consider it.
The best method, at present, would be to do as Rui is mentioning, creating some kind of Grid of equal columns and do your formatting within.
You could also achieve this with a StackLayout specifying a specific WidthRequest for each of the child Views and then do your formatting from within each child View.
Should you need to display more than 4 columns, or more information than would fit on a typical device screen width, then you may want to put a ScrollView as the parent of this Grid or StackLayout, so you can view everything with better spacing rather than cramming everything in.
As a final alternative - you could write your own custom-renderer to support a horizontal ListView with a bindable datasource.