In a large bowl, pour milk over bread cubes and toss until moistened. Set aside. Finely chop 1/2 of an onion (about 1 cup). In a small sauté pan over medium heat, cook chopped onions in 1 tablespoon olive oil until softened and just beginning to brown, about 5-8 minutes. Cool slightly.
Stir cooked onions, 1 teaspoon kosher salt, 1/2 teaspoon pepper, parsley, and thyme into the moistened bread cubes until thoroughly combined. Crumble ground beef and pork into the bread mixture and gently combine with a fork until incorporated. (Overworking the meat mixture until it resembles a paste will result in tough meatballs.)
With lightly damp hands (or an ice cream scoop), shape meatballs into 12 equal portions, about 3 tablespoons each. Cover and refrigerate about 30 minutes, until chilled.
Heat grill over medium-high flame for 10 to 15 minutes. Oil grates or line with nontoxic, nonstick grill mats.
Slice remaining onions into 1/2-inch thick slices. Brush onions with olive oil and lightly season with a few pinches of salt and pepper. Grill onions over direct heat until softened and well-browned, about 5 minutes per side, turning occasionally.
Grill meatballs over direct heat until well-browned, about 3-5 minutes per side.
Pour barbecue sauce into a grill-safe dish or foil pan. Add browned meatballs and gently turn to coat. Lower the flame, close the grill lid, and continue cooking until the sauce is hot and the meatballs register 160 degrees F.
Cut sandwich rolls in half lengthwise and grill, cut side down, over a low flame, until lightly toasted. Layer rolls with barbecue sauce, grilled onions, meatballs, and sliced cheddar cheese. Turn off the heat and return the assembled subs to the grill, lid closed, until the cheese is melted.