aha! i found the solution. the format is multiple instances of option[ID]=VALUE . i had to look at the method params in the api test to find that out. never knew that such a page existed. it was very helpful.
in C# i'm using the following:
for (int i=0; i<options.Count; i++)
{
frmProduct.AddField("option[" + options[i].ToString() + ']', optionValues[i].ToString());
}
where options and optionValues are both instances of System.Collections.ArrayList