The solution is to use the oft-neglected Image Capture. Launch Image Capture from the Applications folder and connect your iPhone to your Mac. The app will see your iPhone as just another camera, and show all the photos you took with it. If you want to delete everything, press Cmd-A (or choose Edit > Select All), or C-click only those photos you want to delete. Then at the bottom of the Image Capture window, click the delete icon – the red circle with a line through it. Image Capture will ask you to confirm that you want to delete all those photos. Do so, and it will delete them immediately.
While you have Image Capture open, check out another handy thing it can do: Prevent iPhoto from launching every time you sync your iPhone. Make sure your iPhone is selected in the application’s Source list. At the bottom left of the program window is a pop-up menu from which you can select the photo application you want to open whenever you plug in the device.
You can choose Image Capture instead of iPhoto – or opt for none.