Heat 2 tablespoons of the olive oil in a medium saucepan over medium high heat until almost smoking. Add the onion and shallots and cook until soft. Add half of the orzo and toast in the olive oil until golden brown. Add the remaining orzo and stock and bring to a boil, continue cooking until the liquid is absorbed. Remove from heat and add the tomatoes and parsley, remaining 2 tablespoons of olive oil and the vinegar. Season with salt and pepper.