You can get the row underlaying data object by using the DataBoundItem property.
Yes, it is possible to know whether a specific row in RadGridView has been changed, but it depends on the data source. If you are using a DataTable as an example, the DataBoundItem property contains an instance of a DataRowView object. You should use the IsEdit property of the DataRowView.
Consider the following method:
List<GridViewDataRowInfo> GetModifiedRows()
{
List<GridViewDataRowInfo> modifiedRows = new List<GridViewDataRowInfo>();