A bound datagrid is like the word inplies -it is bound/binded/tied to a recordset or datacontrol object. All actions in the grid will affect the recordset and possible a database table if the recordset is opened on it.
An Unbound grid is not tied to a recordset - you need to fill the cells with data - it will not happen automatically.
You can see if the grid is bound by checking its' datasource property in the properties window or in code - is it assigned to a recordset or datacontrol - more than likely - then it is bound.
The problem in your case is that the data that is pulled into the grid is either in the "physical" order (other readers please let's not get into a discussion about this here - I am saying physical to just make it easier to understand) that it is in the database table, which you just cannot place a new record anywhere you want in this type of Db, but only on the end of it, or in a specific order defined by the recordset/cursor.
The data on a bound grid -is based on one of these orders, and the records have to remain in this order until you set a new sort order on the recordset, with-out getting into more details.
You might want to consider using a ListView, (if you are not dealing with more than 1,000 records) create a recordset object based on a database table and loop through the records, adding them to the ListView Control - but that is another question.