Three options for you, ranging from manual-but-easy to manual-and-need-a-doctorate (in that progression).
1. Don't use DHCP.
Allocate a static IP in your router (so it doesn't give that IP to another device) and then configure Ubuntu to use that static address. You can do that either with Network Manager (if you're using that) or by editing
/etc/network/interfaces with something like this:
iface eth0 inet static
2. Have something sit and wait for your network to come up and have an IP
I'm talking about writing a script that checks to see if your network card is up. For simplicity you could combine whatever launches XBMC with a check like (stolen from the forums):
until wget -q -O - http://www.google.com | grep Lucky > /dev/null; do
And call that script instead of calling
3. Play around with Upstart and break it to do your will.
Upstart is what manages all the system things and manages when things run based on events that each job emits. This seems like the most pleasing route for you because you might be able to make it emit a signal exactly when it has a DHCP address assigned.
The problem is you'll have to really dig into the boot process to alter things. I don't know enough about it to reasonably help.