Yes, this is possible within a GridView through the use of ItemTemplates. You would define a basic ItemTemplate with the basic details, and then do a little bit of custom programming with the additional details you want to display instead of using the default databinding through the OnRowDataBound event.
If all you're doing is displaying a label with the count of vehicles found, you can include a label control in your ItemTemplate and display/hide the label depending on if the SelectedIndex matches the row being bound.
If you're looking to do something a little more fancy when the selected row, I'd suggest doing an "override" of the EditItem template. You can use the EditItem template to display a complete different layout of the selected row, and test for this through the EditIndex property of the GridView. The other advantage of this is that you could use the "inline" binding method of getting the data in your GridView (you'll see the <%= or <%# tags in the .aspx page) without a lot of coding in the code behind page.
For some more details on the general databinding process (which includes itemtemplates), check out this tutorial on the ASP.net site.
Also check out the Master/Detail article links along the sidebar of the page. One of those solutions might fit your needs nicely as well.