Usa array_agg:http://www.sqlfiddle.com/#!1/5099e/1
SELECT s.name, array_agg(g.Mark) as marks
FROM student s
LEFT JOIN Grade g ON g.Student_id = s.Id
GROUP BY s.Id
A proposito, se stai usando Postgres 9.1, non è necessario ripetere le colonne su SELECT per GROUP BY, ad es. non è necessario ripetere il nome dello studente su GROUP BY. Puoi semplicemente GROUP BY sulla chiave primaria. Se rimuovi la chiave primaria su studente, devi ripetere il nome dello studente su GROUP BY.
CREATE TABLE grade
(Student_id int, Mark varchar(2));
INSERT INTO grade
(Student_id, Mark)
VALUES
(1, 'A'),
(2, 'B'),
(2, 'B+'),
(3, 'C'),
(3, 'A');
CREATE TABLE student
(Id int primary key, Name varchar(5));
INSERT INTO student
(Id, Name)
VALUES
(1, 'John'),
(2, 'David'),
(3, 'Will');