Div in unordered list - good practice?
Divs of any kind are a bit of a "lesser evil" -- they carry no semantic info, and should be used only when (1) you need an element there and (2) there's no semantic equivalent.

In this case, you do have a semantic equivalent.  You have rows, columns, headers...data that must be arranged in those rows/columns and have those headers or it doesn't make sense...what you have here is a bona fide table.  And it should be coded as one, rather than as a list of divs.  ("Tables bad, CSS good" applies to layout tables, not tables in general.  If you have tabular data, putting it in a table just makes sense.)