I've now roughly copied the setup from that example, and while it works, it still feels a bit weird to work with.
In case someone else runs into the problem with positioning a grid, here's how I've made it work:
Container
|-- ScrollView
|-- Grid
|-- GridElement
|-- GridElement
The Container has a UIWidget have a top-left pivot. Make this be the size that the ScrollView should cover
The ScrollView is a default Scrollview. Ensure that the Scrollview's local Position is (0,0,0).
The Grid's local position should be (0,0,0) as well. This should ensure the Grid starts in the correct position on runtime, and that it doesn't jump around when the grid becomes empty and then filled up again.
The GridElements are Sprites that have a top-left pivot.
If anyone has a better setup, I'd really like to hear it, but this is what I'm going with for now.