My idea:
Rule 8.04 in Major League Baseball’s rulebook says, “When the bases are unoccupied, the pitcher shall deliver the ball to the batter within 12 seconds after he receives the ball. Each time the pitcher delays the game by violating this rule, the umpire shall call Ball.”
If they would just enforce this rule alone, it would take several minutes off the average time. Add a little to it. If a batter calls "time" more than once in an at-bat, call a strike.