This is one of my favorite interview questions to ask when interview candidates.
I my mind, a strong asp.net developer understands the differences between these controls and when that are appropriate to be used.
Repeater - Think of what you did with classic asp and rolling through datasets, you essentially were doing the work of the repeater. Based the concepts of templates, you layout how you want the html rendered for each row of data ( or data object). The repeater does not add any additional html markup behind the scenes.
Datalist - similar to the repeater with the exception of the data is rendered in either a html table or a collection of spans depending upon how the flow property is set. The datalist is unique in that it also allows for repeating sections to be either horizontal or vertical and how many times to repeat the flow in that direction. Think of the classic mailing label report and that will give you clean picture as to what I am refering.
Datagrid - tabluar representation of data with built in support for inplace editing. While the data list and the repeaters are template based, the datagrid in addition to being template based does so via a columns collection and it can be hooked up to datasource without any additional programming and it will present the data. Columns can be datafields or templates.
Hope this helps,