Assuming you are using the latest version (2.5.2), because table-view subforms worked a bit differently prior to version 2.5.0, you should be able to achieve what you are asking by using the following code in the On Element Entry event of the 4th field. This is very close to what lksseven posted, except that his code won't work in search/update mode.
var Success as int
If @Mode() = 0 // Add
Success = @SelectTreeItem("Add Data Menu!Navigation!Advance Record (F10)")
Else If @Mode() = 1 // Update
Success = @SelectTreeItem("Search Update Menu!Navigation!Advance Record (F10)")
ThrowFocus(TDate) // Adjust the name here to fit your application
Every time the user tabs into the 4th field, focus will automatically go the the 1st field on the next row. The only issue with this is that when they finish with the last subrecord, the focus will move to a new blank subrecord. Not a real problem, because it will not be saved/added unless they type something in one of the fields or if programming populates one of the fields. But still, it may not be what you want. If you want to prevent this, you can add the code below to the On Form Entry event.
With the code below, the cursor will jump to the 1st
row in the subform after the tabbing into the 4th field in the last subrecord, rather than going to a new blank subrecord. (Hope I explained that clearly enough.)
// Prevent Extend Mode
FormNotifyForm(@Layout + ":(Update)", 7)