Use 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 propósito, se você estiver usando o Postgres 9.1, não precisará repetir as colunas em SELECT para GROUP BY, por exemplo. você não precisa repetir o nome do aluno em GROUP BY. Você pode simplesmente GROUP BY na chave primária. Se você remover a chave primária do aluno, precisará repetir o nome do aluno em 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');