The only way to speed up this process would be to simply not use the api. As you have come to find, it is far too slow for this type of task.
Instead, you will have to work directly with the database ( for maximum speed ), but unfortunately this requires you to fully understand at a very low level how Magento deals with inserting products and all of the tables that are touched in this process.
An intermediate solution may be to use the magento models etc. to create these products. For example to create a new simple product you can use this type of code:
$newProduct = Mage::getModel('catalog/product')
->setAttributeSetId($attributeSetId)
->setTypeId('simple')
->setStatus(1)
->setTaxClassId(2)
->setVisibility(4)
->setSku($sku)
->setName($name)
->setDescription($description)
->setShortDescription($shortDescription)
->setPrice($price)
->save();
This is a very simple example and there is so much more you can do here.
I have used a similar method with a custom module for importing products from csv files and it takes a few hours to import around 1500 products.
I think though that with the volumes you are talking about then any way you decide to get these products into Magento is going to take a long time. I would also question why you need so many products in the first place.