See the question and my original answer on StackOverflow

You could write a Visual Studio macro, something like this:

Dim WithEvents MyBuildEvents as BuildEvents

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles MyBuildEvents.OnBuildBegin
    OpenBuildOrderOutputPane()
End Sub

Private Sub OpenBuildOrderOutputPane()
    Dim window As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput) ' Get Output Window
    Dim output As OutputWindow = CType(window.Object, OutputWindow)
    For Each pane As OutputWindowPane In output.OutputWindowPanes ' Browse panes
        If (pane.Guid = "{2032B126-7C8D-48AD-8026-0E0348004FC0}") Then ' Build Order guid
            pane.Activate()
        End If
    Next
    window.Activate()
End Sub

You need to paste this code in MyMacros, EnvironmentEvents module.