Preheat oven to 350°F Spray a 13x9 inch glass baking dish with cooking spray.
In a nonstick saucepan, heat oil over medium heat; cook onions and garlic for 5 minutes or until softened. Stir in beef; cook for 5 minutes, or until no longer pink, stirring to break up meat. Stir in tomato sauce, basil, oregano, and hot pepper sauce. Reduce heat to a simmer; cook for 10 minutes, covered.
Meanwhile, in pot of boiling water, cook spaghetti for 8 to 10 minutes or until tender but firm; drain. In a food processor, combine sour cream, cheeses, and salt and pepper; purée until smooth.
Place drained spaghetti in baking dish. Spoon sour cream mixture on top of spaghetti, mixing well. Spoon tomato sauce evenly over top. Mix together topping ingredients; sprinkle over casserole.
Bake in centre of oven for 20 minutes. Spoon out to serve.