Preheat the oven to 375°F (190°C).
Prepare the roasted garlic: slice off the top of each garlic head to expose the cloves, remove loose papery skin, drizzle about 1/2 teaspoon olive oil over each head, wrap in foil, and place on a baking sheet; roast in the oven for 45 minutes until soft and caramelized.
Lightly spray a 9x13-inch baking dish (or a large baking sheet) with nonstick spray or oil.
Make the meatball mixture: in a large bowl combine the ground chicken, beaten egg, 1 tablespoon olive oil, 2 minced garlic cloves, 1/2 cup finely grated parmesan, 1/4 cup seasoned bread crumbs, 3 tablespoons chopped fresh herbs, 1 teaspoon dried basil, 1 teaspoon dried parsley, 1/2 teaspoon salt, and 1/2 teaspoon pepper; mix gently until just combined.
Form meatballs about 1 inch in diameter (wet hands slightly to help) and place them on a plate.
Spoon about half a jar of marinara sauce into the bottom of the prepared baking dish. Arrange meatballs in the sauce about 1 inch apart.
Top each meatball with a little more marinara and sprinkle evenly with the grated mozzarella or provolone.
Bake the meatballs for 25 to 30 minutes, or until an instant-read thermometer inserted into the center reads 165°F (74°C).
While meatballs bake, cook the whole wheat spaghetti in salted boiling water according to package instructions until al dente; drain and return to the pot or a large bowl.
When the roasted garlic is done and cool enough to handle, squeeze the soft cloves out of their skins into the cooked spaghetti, drizzle 2 to 3 tablespoons olive oil, mash the garlic with a fork if desired, and stir in 1/4 cup finely grated parmesan.
Serve the roasted garlic spaghetti topped with baked meatballs and additional marinara, extra parmesan, and fresh basil if desired.