Faits: A. Par écriture du 2 avril 2009 adressée au Procureur général du canton de Genève, A._ a déposé une plainte pénale contre B._, président du conseil d'administration de la société X._. Il se plaint en substance d'une violation de la loi fédérale sur la protection des marques (RS 232.11), au motif que X._ propose les archives de Y._ en libre accès sur internet et en fait la publicité, alors que la marque "YZ._" a été déposée par une association présidée par A._. Le 7 avril 2009, le Procureur chargé d'instruire cette plainte a invité B._ à se déterminer, ce que le prénommé a fait en déposant une écriture datée du 14 mai 2009. Le 22 juin 2009, A._ a produit un document destiné à compléter le bordereau d'une vingtaine de pièces déposé à l'appui de sa plainte. Le 1er juillet 2009, il a écrit au Procureur général pour critiquer l'avancement de la procédure, en précisant qu'il formait un recours pour déni de justice et retard injustifié. B. Le 6 juillet 2009, A._ a déposé un recours de droit public, dans lequel il demande au Tribunal fédéral de sommer le Ministère public genevois d'agir immédiatement. Invoquant l'art. 29 Cst., il se plaint d'un retard injustifié et de déni de justice. Le Ministère public du canton de Genève s'est déterminé; il conclut au rejet du recours.