In MVC, I would suggest using a combination of a LINQ query in your controller (or in a repository, within a function called from the controller), a for loop in your view, and depending on on how complex the items you want to display are, a partial view inside the loop.
For pagination, you might pass start and count parameters to a function to get a section of a list of objects via LINQ. For example:
Function sliceList(ByVal startIndex As Integer, ByVal count As Integer) As Generic.List(Of myObject)
Dim FullObjectList As Generic.List(Of myObject) = GetObjectsFromSomewhere()
Dim returnList As New Generic.List(Of myObject)
returnList = From o In FullObjectList Skip startIndex Take count
Return returnList
End Function
Then your controller passes the returned listed to the view for display, and you loop through it, displaying the items however you please.
Hope this helps.