Grids are designed to represent individual data entries as rows and attributes of those entries as columns. As a result, we don't directly support the use case of having different cells to render individual rows.
Consider using multiple HorizontalLayoutContainers to have your components line up in columns when the HorizontalLayoutContainers are stacked. This allows you to have your components line up in a tabular look without using an actual grid.
If you're sure this is what you want to do, consider writing a custom cell that renders differently depending on the row being rendered. Your cell should implement the GWT Cell interface, which allows most methods to receive a Context object. This Context object will have the index of the row, which should allow you to do whatever row-specific substitutions are necessary. However, this is very unlikely to be what you want to do.