You will need to run an expensive group based operation every time a point is awarded for the easy approach so make sure you correctly destroy the group to prevent leaks.
The simplest approach is mutual exclusion. You have 2 boolean variables which start out false (each time you run you need to set them false). Then for each unit "on the hill" (fill a group with the units from the hill rect/rects (region in GUI) and pick them) you set them as follows.
1. Set if any unit from team 1 is on the hill (bool1 == true or owner of picked unit is in team 1 == true).
2. Set if any unit from team 2 is on the hill (bool2 == true or owner of picked unit is in team 2 == true).
Then after having applied that test to all units "on the hill" you check these boolean values and do the following depending on the case.
bool1 == true and bool2 == true: Both teams are on the hill, do nothing.
bool1 == true and bool2 == false: Team 1 owns the hill, give him a point.
bool1 == false and bool2 == true: Team 2 owns the hill, give him a point.
bool1 == false and bool2 == false: No one owns the hill? Maybe give point to last owner (keep track in variable).