Heidfeld, who is out of contract at the end of this season, set a best time of 1:22.621 as he focused on set-up work ahead of the Italian GP, which takes place at the Monza circuit.
Second place went to Williams' Nico Rosberg, who finished a quarter of a second off the pace, while Heikki Kovalainen completed the top three.
Sebastian Vettel continued his impressive run of form, setting the fourth best time ahead of Felipe Massa and Fernando Alonso.
Force India's Adrian Sutil put in a solid display to finish ahead of Mark Webber, who with 101 laps was the day's busiest driver.
Jarno Trulli and Sebastien Bourdais completed the top ten.
Meanwhile Honda continued to disappoint with Rubens Barrichello and Jenson Button proving to be the two slowest drivers out on track. While Barrichello was two seconds off the pace, Button found himself further half a second slower.
01 N. Heidfeld BMW 01:22.621 89 laps
02 N. Rosberg Williams 01:22.879 100 laps
03 H. Kovalainen McLaren 01:23.341 92 laps
04 S. Vettel Toro Rosso 01:23.424 47 laps
05 F. Massa Ferrari 01:23.445 86 laps
06 F. Alonso Renault 01:23.606 95 laps
07 A. Sutil Force India F1 01:23.823 92 laps
08 M. Webber Red Bull 01:23.936 101 laps
09 J. Trulli Toyota 01:24.158 77 laps
10 S. Bourdais Toro Rosso 01:24.311 44 laps
11 R. Barrichello Honda 01:24.695 51 laps
12 J. Button Honda 01:25.049 42 laps