Lo más fácil es averiguando la cantidad de registros del DataSet que "alimenta" al DBGrid.
Código:
DataSet.RecordCount
Es bueno saber que para que el DataSet "averigüe" la cantidad de registros del Query/Tabla, es necesario que este vaya al último registro, y esto en consultas muy grandes puede demorar mucho y a su ves, consumir muchos recursos.
Es un error muy común utilizar RecordCount para averiguar si el DataSet no está vacío.
Saludos!