Cut the ciabatta slice into small cubes, place in a bowl and cover with enough milk to soak; set aside while you prepare other ingredients.
In a large mixing bowl combine the ground beef, grated Parmesan, minced onion, thyme, chopped basil, lemon zest, salt, black pepper and the egg.
Squeeze the soaked ciabatta to remove most of the milk, then add the bread to the meat mixture and mix until just combined.
Portion the mixture into meatballs of about 2 oz (use a scale or tablespoon), shape into rounds and gently flatten slightly.
Heat 2 tablespoons extra-virgin olive oil in a large frying pan over high heat until very hot. Add meatballs in a single layer and sear without moving for about 3 minutes to form a crust.
Turn the meatballs and sear the other side for about 3 minutes, using pan juices to baste. When both sides are seared, remove from heat; they will finish cooking in the sauce.
Make the tomato sauce: heat 2 tablespoons extra-virgin olive oil in a saucepan over medium heat and add the crushed garlic. Cook until golden, then remove and discard the garlic.
Reduce heat, add the chopped peeled tomatoes, a couple of basil leaves and the bay leaf. Season with salt, pepper and a pinch of sugar if desired, and simmer gently for 10–15 minutes.
About halfway through the sauce's cooking time, add the seared meatballs to the sauce and continue simmering until meatballs are cooked through and flavors meld, about 8 minutes more.
Meanwhile, cook the spaghetti in a large pot of lightly salted boiling water for about 8 minutes or until al dente according to package directions.
Drain the pasta and add it to the pan with the meatballs and sauce. Toss to combine and heat through.
Serve immediately with additional grated Parmesan and fresh basil leaves on top.