Not much really. That is also what it says in the docs (https://docs.mendix.com/refguide/template-grid and https://docs.mendix.com/refguide/list-view).
The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. Using controls provided by the template grid you can browse, search and manipulate those objects. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows.
The list view is similar to the template grid. The list view shows a list of objects arranged vertically. Each object is shown using a template. During development, the object template is defined by placing a widget inside the list view’s dropzone. The list of objects shown is determined by a datasource.
Differences between template grids and list views:
- template gridsdo give you the option for numbers of rows and columns, list views don't
- template gridshave a automatic refresh option, list views don't.
To add to Tim's answer, here is another difference:
You have the option of the objects in a list view to be editable. This is not the case for template grids. or in short ListViews can be editable, template grids are read only
This also has the implication that if you want to update a single item in a list view that is possible with a simple refresh in client, however for a template grid you have to trigger refresh for the whole grid.