Should this property be set on the parentBO or childBO or both? (the help doesn't specify which one)
You will set this on the parent BO.
By setting this property to "MatchCurrentRow", Does this mean, as the "CurrentRowIndex" in the parent BO changes, SF will automatically fills the childBO by parent's primary key?
It means that only child records that belong to the current record on the parent BO will be filtered. So if the parent BO has a PK value of 3, let's say, then any child records whose foreign key matches a value of 3 will be fitlered.
What if I need to call ChildBO FillByParentPrimaryKey method myslef, Do I still need to set this property?
The ChildAutoFilter property only filters the records in the child BO that have already been retrieved from the server. So if you call the FillByParentPrimaryKey method then there is no reason to even set the ChildAutoFilterOption property at this point.