Customer object is only created and saved when order is submitted, the method creating the customer object is _prepareNewCustomerQuote in Mage_Checkout_Model_Type_Onepage, the method saving it is $transaction->addObject($quote->getCustomer()); in submitOrder() in Mage_Sales_Model_Service_Quote.
To save customer before that, you can rewrite Mage_Checkout_Model_Type_Onepage and call prepareNewCustomerQuote and save customer object in the end of saveBilling(), then change checkout method of current quote to METHOD_CUSTOMER.
The catch is after customer account created, if the customer want to edit billing address, it will try to create the same customer account again.