Cook the spaghetti according to package directions in a large pot of salted water until al dente. Drain the pasta, reserving 1/2 cup of the starchy pasta water, then set both aside.
While the pasta cooks, season the cubed chicken evenly with 1/2 teaspoon of salt and the black pepper. Heat the olive oil in a large skillet over medium-high heat. Add the chicken and cook for 5 to 7 minutes, stirring occasionally, until golden brown and cooked through. Transfer the chicken to a clean plate.
Reduce the heat to medium-low and add the butter to the same skillet. Once melted, add the minced garlic and cook for 1 minute, stirring constantly, until fragrant. Sprinkle the flour over the butter and garlic and whisk continuously for 1 minute to form a paste, which is called a roux.
Slowly pour in the milk and heavy cream while whisking constantly to avoid lumps. Bring the sauce to a simmer and cook for 3 to 4 minutes, stirring frequently, until it has thickened enough to coat the back of a spoon.
Turn off the heat and stir in the 1 cup of grated Parmesan cheese and the remaining 1/2 teaspoon of salt until the cheese is fully melted and the sauce is smooth.
Add the cooked spaghetti, reserved chicken, and chopped parsley to the skillet with the sauce. Toss everything together until well combined, adding a splash of the reserved pasta water if needed to loosen the sauce to your desired consistency. Serve immediately with extra Parmesan cheese sprinkled on top.