J'ai regardé un peu avec RegShot pour voir ce qui changeait dans la base de registre.
Au final, voilà ce que j'ai trouvé : 
Dans 
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676 :
 - Chaque compte est défini par un numéro, correspondant à une clé dans 
9375CFF0413111d3B88A00104B2A6676 (par exemple, 00000004).
 - La valeur 
{ED475418-B0D6-11D2-8C3B-00104B2A6676} contient l'ordre des comptes Outlook (dans la fenêtre dont tu as fait la capture d'écran)
Dans chaque clé correspondant à un compte (00000004), il y a la valeur Account Name, qui contient le nom du compte. Tu peux lire la valeur comme ça : 
► Afficher le texte
Code : Tout sélectionner
$s = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000004", "Account Name")
$s = BinaryToString(StringReplace($s, "00", ""))
MsgBox(0, "", $s)
 
Une fois que tu as le nom du compte du peux choisir l'ordre, sachant que le premier est celui par défaut. 
Voilà donc 2 fonctions, qui fonctionnent chez moi (Office 2010) : 
► Afficher le texte
Code : Tout sélectionner
#Include <Array.au3> ; uniquement pour _ArrayDisplay
$aAccounts = _OutlookGetAccounts()
_ArrayDisplay($aAccounts)
_OutlookSetAccountDefault("NomDuCompte")
Func _OutlookSetAccountDefault($vAccount) ; $vAccount peut etre le nom du compte ou son identifiant dans la base de registre
    Local $aAccounts
    Local $sAccountID = $vAccount
    
    If Not Number($vAccount) Then
        $aAccounts = _OutlookGetAccounts()
        _ArrayDisplay($aAccounts)
        For $i = 1 To $aAccounts[0][0]
            If $aAccounts[$i][1] = $vAccount Then
                $sAccountID = $aAccounts[$i][0]
                ExitLoop
            EndIf
        Next
        If Not Number($sAccountID) Then Return SetError(1, 0, 0)
    EndIf
    
    Local $sOrder = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676", "{ED475418-B0D6-11D2-8C3B-00104B2A6676}")
    Local $sAccountReverse = StringRegExpReplace($sAccountID, "(\d{2})(\d{2})(\d{2})(\d{2})", "$4$3$2$1")
    Local $sNewOrder = StringRegExpReplace($sOrder, "^0x\K((?:\d{8})*)" & $sAccountReverse, $sAccountReverse & "$1")
    Local $iRet = RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676", "{ED475418-B0D6-11D2-8C3B-00104B2A6676}", "REG_BINARY", $sNewOrder)
    Return SetError(@error, 0, $iRet)
EndFunc
Func _OutlookGetAccounts()
    Local $sOrder = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676", "{ED475418-B0D6-11D2-8C3B-00104B2A6676}")
    Local $aNums = StringRegExp($sOrder, "\d{8}", 3)
    Local $aRet[UBound($aNums) + 1][2]
    
    For $i = 0 To UBound($aNums) - 1
        $aRet[$i + 1][0] = StringRegExpReplace($aNums[$i], "(\d{2})(\d{2})(\d{2})(\d{2})", "$4$3$2$1")
        $aRet[$i + 1][1] = BinaryToString(StringReplace(RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & $aRet[$i + 1][0], "Account Name"), "00", ""))
    Next
    $aRet[0][0] = UBound($aNums)
    Return $aRet
EndFunc
 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !