I am not sure this qualifies as elegant but it works but might not be as complete as you want (e.g. when right-clicking in the textbox and selecting Paste from the context menu). 
See Paste Event in a WPF TextBox
Set the AcceptsTab to true just before Ctrl-V is processed and restore it after:
XAML:
<TextBox AcceptsTab="False"
         Height="200" 
         PreviewKeyDown="TextBox_PreviewKeyDown" 
         KeyUp="TextBox_KeyUp"/>
C#:
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (!(sender is TextBox textbox))
    {
        return;
    }
    if (e.Key == Key.V && (e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)))
    {
        textbox.AcceptsTab = true;
    }
}
private void TextBox_KeyUp(object sender, KeyEventArgs e)
{
    if (!(sender is TextBox textbox))
    {
        return;
    }
    textbox.AcceptsTab = false;
}
This could be turned into a behavior so it would be easier to apply it to more textboxes without writing code behind.