Ja, beim Anschluss kann man sich schnell vertun...
Versuch mal folgende Belegung:


o o o o o o o o
22 24 26 28 30 32 34 36



38 40 42 44 46 48 50 52
o o o o o o o o
__

Hier das auf die neue Belegung abgestimmte Programm:
Code:
/*
Matrix
LED-Matrix zeigt ein Bild

Dieses Beispiel aus dem Fritzing Creator Kit: www.fritzing.org/creator-kit.
*/

// Belegung der Matrix (Z=Zeile / S=Spalte)
// obere Pins
// S1 Z5 Z3 S4 Z8 S2 Z2 Z1
// untere Pins
// S3 S6 Z4 S8 Z6 Z7 S7 S5

// Anschluss Matrix an Arduino Mega
// obere Pins
// 22 24 26 28 30 32 34 36
// untere Pins
// 38 40 42 44 46 48 50 52

// Pinbelegung für Arduino MEGA
int reihenPins[8]  = {36,34,26,42,24,46,48,30};
int spaltenPins[8] = {22,32,38,28,52,40,50,44};


int image[8][8]={ // Bild, das auf der Matrix gezeigt wird. 1 = LED an, 0 = LED aus

{0,1,0,0,0,0,1,0},
{1,1,1,0,0,1,1,1},
{0,1,0,0,0,0,1,0},
{0,0,0,1,1,0,0,0},
{0,0,0,1,1,0,0,0},
{1,0,0,0,0,0,0,1},
{0,1,1,1,1,1,1,0},
{0,0,1,1,1,1,0,0}

};

void setup(){
  for (int i=0; i<8; i++){ // Alle Pins werden als OUTPUT declariert
    pinMode(reihenPins[i],OUTPUT);
    pinMode(spaltenPins[i],OUTPUT);
  }
}

void loop(){
  for (int y=0; y<8; y++){                  // zeilenweise werden
    for (int x=0; x<8; x++){                // von links nach rechts alle Einträge des Arrays geprüft
      if (image[x][y]==1){                  // ist der Eintrag = 1
        digitalWrite(spaltenPins[x],HIGH);  // wird der Spaltenpin eingeschalten
      } else {                              // sonst
        digitalWrite(spaltenPins[x],LOW);   // abgeschalten
      }
    }
    digitalWrite(reihenPins[y],LOW); // nun wird der Reihenpin auf LOW geschalten (da es die Kathode der LED betrifft bedeutet LOW eingeschalten: LOW = GND)
    delayMicroseconds(100); // das Programm hällt 100 Mikrosekunden an
    digitalWrite(reihenPins[y],HIGH); // danach wird der Reihenpin wieder auf HIGH (in diesem Fall also abge-) schalten
  }
}
Und wo gibt es eine Legende, die die kryptischen Bezeichnungen auf der Pin-Map mir deutet?
Im Datenblatt des ATMega2560-Microcontrollers von Atmel.
Aber wie schon geschrieben, dieses Wissen braucht man zum Arduino-Programmieren eigentlich nicht.