McCullum scored a punishing 188-ball 202 and created a new second wicket record of 297 as New Zealand reached 388-2 at lunch on the third day at Sharjah cricket stadium.
At the break Kane Williamson was unbeaten on 135 -- his eighth Test century -- and Ross Taylor was 26 not out.
That gave New Zealand a lead of 37 runs over Pakistan's first innings total of 351, a strong position from where they seek to level the series they trail by 1-0.
McCullum jumped out of his crease to hit leg-spinner Yasir Shah over the stadium roof at long-on for his 11th six to complete his double hundred off just 186 deliveries.
More From This Section
This is his third double hundred this year, following his two against India at home in February.
Michael Clarke (four scores of over 200 in 2012) Ricky Ponting (three in 2003) and Don Bradman (three in 1930) -- all from Australia -- are the only other players to have scored three or more double hundreds in a year.
McCullum was finally bowled by Shah, much to the relief of the Pakistan bowlers who were looking for a wicket after New Zealand resumed the day on a strong 249-1.
McCullum-Williamson stand bettered New Zealand's all time previous second wicket stand of 241 held by Andrew Jones and John Wright against England at Wellington in 1992.
Williamson reached his hundred with a sweetly timed on-drive boundary off paceman Mohammad Talha, completing the three-figure off 124 balls with 13 fours and a six.
Both teams had to abandon second day's play on Thursday to mourn the tragic death of Australian batsman Phillip Hughes who died after being hit by a bouncer during a match in Sydney.