When you're talking about "Companies", do you mean "Account"? Maybe you renamed the Account Object Type... Whatever...
If you're really talking about Account, then, you have the "ParentAccountId" field that holds the Row ID of the Parent Account for a given Account.
When you are considering an Account record, if you take the ID of the record (for example ADBA-87558), then you can search for all the other records which have "ADBA-87558" in the ParentAccountId field.
In WebServices 2.0 let's search for all the children of Account "ADBA-87558" ! If we want to do so, we must :
*<quer:Account searchspec="[ParentAccountId] = 'ADBA-87558'">*