Each user would have a row entry in your users table. You could have a very large text field (say, called ToDoList) and store each list entry as a string, with strings separated by a character of your choosing.
For example:
"Go to the store|Take dog to vet|Buy Dad a birthday card|Mail Dad's card"
When the user logs in, you would read that user's entry from the database, reading in that field.
$u = mysql_result(mysql_query("SELECT * FROM `users` WHERE `user_id` = '$user_id'), 0);
$toDoStr = $u['ToDoList'];
You would then explode the string back into individual array elements, using explode(). $arrToDo = explode("|", $toDoStr);
When the user is ready again to save his revised ToDo list, you could loop through the HTML fields and get all the values, and re-create this ToDoList string. Note that (upon saving to database) you would need to check each To Do List item for your separation character (in this example, the | char) and replace with a different character.