For the meatballs: Put the bread, garlic, onion, 1/2 teaspoon salt and a few grinds of black pepper in a food processor and pulse until very finely ground. Add the parsley and pulse until finely chopped. Add the egg and pulse until combined. Add the beef, pork and Parmesan and pulse until very well mixed. Transfer the mixture to a bowl. Line a rimmed baking sheet with parchment or foil. Roll the mixture into 1-inch meatballs, transferring them to the prepared baking sheet.
For the soup: Heat the olive oil in a Dutch oven or large, wide pot over medium-high heat. Add half of the meatballs and cook, stirring gently occasionally, until browned on most sides and just cooked through, 3 to 4 minutes. Remove the meatballs to the baking sheet (they will cook again so don't worry about contamination). Repeat with the remaining meatballs.
Add the carrot, celery and onion to the pot and cook, stirring occasionally, until starting to soften, about 5 minutes. Add the chicken broth, Parmesan rind if using, 1/2 teaspoon salt and a few grinds of black pepper and bring to a brisk simmer. Add the pasta or couscous and cook according to the package instructions for al dente.
Add the escarole and meatballs to the soup and return to a simmer. Simmer until the escarole is slightly wilted, about 2 minutes. Remove the Parmesan rind and discard. Sprinkle with the parsley and top with a drizzle of extra-virgin olive oil. Serve with more Parmesan on the side.