I don't think I've tried this to make sure it works, but I've seen people here say that if you activate the Balloon function, then scroll down in the tree to the non-geometry part and click on it's origin it will pick up the part number from the BOM. Again, I haven't tried this, but it's worth a shot.
Many thanks for the tip! My experimentation shows that your method works with STACKED balloons but not standards balloons. With Stacked, you need to select a visible component first and then you can click the non-visible part's origin and it will be added to the stack. You can not select the non-visible part as the first part in the stack. You can however DELETE the first visible component from the stack leaving ONLY the non-visible part by editing the stacked balloon after it has been created.
Sounds like a good enhancement request...