See the Instructional Unit "Add-Delete On Child Grid" in 200 Intermediate. Then drill into the 02 Code CSharp folder until you find the solution "AddDeleteWithNewItemRowOnChildGridInUserControl". Also read the paper in the 05 Reference Materials folder, entitled "Add Delete Child Business Objects in a Grid Using NewItem Row.doc".
I'm currently trying to debug an issue using the NewItemRow with the .NET DataGridView, wherein the user ESCapes off the NewItemRow, apparently cancelling the Add operation, but leaving an entity in the cache which then gets saved. It's tough. There doesn't appear to be a similar issue with the XtraGrid, as it doesn't (I think; might be an option) permit escaping out, or doesn't actually create the new entity until a value is actually entered into it, after which time ESCaping doesn't get rid of the row; I forget which. Anyway, just be aware of that possible issue, in case it surfaces in your implementation.
I've also seen an issue with the XtraGrid eating the first character of a (string-valued only?) entry into the first-modified cell of the new row. Seems like it maybe only appeared if the NewItemRow was positioned at the bottom, rather than the top as you've indicated MPS wants it. But that's just another heads up, also. Please let me know of other weirdnesses (or of unqualified success) in your attempt to implement this. So far it has seemed like a gotcha-prone feature in more than one grid control. Still, I'd count your chances of success much better with the XtraGrid than with the .NET grid