Preheat the oven to 375°F (190°C).
Prepare the 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 the exposed cloves, wrap each head in foil, and place on a baking sheet; roast for 45 minutes until soft and caramelized.
Spray a 9x13-inch baking dish or line a baking sheet with nonstick spray or parchment.
Make the meatball mixture: in a large bowl combine ground chicken, beaten egg, 1 tablespoon olive oil, 2 minced garlic cloves, 1/2 cup grated Parmesan, 1/4 cup seasoned breadcrumbs, 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 the meatballs: wet your hands slightly and roll the mixture into about 1-inch meatballs.
Spread half a jar of marinara sauce in the bottom of the prepared baking dish and arrange the meatballs about 1 inch apart in the sauce.
Spoon a bit more sauce over each meatball, then sprinkle the tops with the grated mozzarella or provolone.
Bake the meatballs for 25–30 minutes, or until an instant-read thermometer inserted into the center reaches 165°F (74°C).
While the meatballs bake, cook the whole wheat spaghetti in salted boiling water according to package instructions; reserve, then drain and return to the pot or a large bowl.
When roasted garlic is done, unwrap and squeeze the soft, caramelized garlic cloves out of their skins into the spaghetti; drizzle 2–3 tablespoons olive oil over the pasta, mash the garlic into the spaghetti with a fork, and stir in 1/4 cup grated Parmesan until combined.
Serve the roasted garlic spaghetti topped with baked meatballs and additional marinara if desired; garnish with extra Parmesan and fresh basil.