It is highly unusual to create new tables for users like you are describing. Most of the time you will just be adding records to a user's table to record the details for your users. In PHP though you can execute just about any sql using the mysql_query() function. Here is an example of some code that would create a new table called demo:
<?php
mysql_select_db($database_test, $test);
$query_newtable1 = "CREATE TABLE `demo` (
`demoid` int(11) NOT NULL auto_increment,
`demouname` varchar(255) NOT NULL,
`demopword` varchar(255) NOT NULL,
PRIMARY KEY (`demoid`)
)";
$Recordset1 = mysql_query($query_newtable1, $test) or die(mysql_error());
?>
This code is utilizing a Dreamweaver connection named test. When the code executes it will take the variable that holds the sql and execute it, if there are problems with the execution the 'or die()' part would be triggered and give you an error from the MySQL server.