If there is enough moisture in the cabin for the windows to fog then you pretty much need to get some air exchange to lower the inside humidity. It is not intuitively obvious but in cool climates like where you are even when it's raining outside bringing fresh air into the cabin helps dry things out inside the boat. Assuming you have a heater running. Warming air up lowers the relative humidity(IOW raises the dew point) High humidity and glass colder than the air is what causes fogging. So cracking a couple of windows and/or the door to get some air movement through the cabin is necessary.
As far as the problem of specifically the windshield fogging while running, regardless of what you do from time to time it will fog at the most inopportune moment. And we all know the problem with using towels to wipe the windshield. The best thing I've found in a lifetime of boating is to keep a small squeegee on the dash board. It is quick, handy, doesn't have to be dried out, etc. Treating the glass with one of the popular anti fogging products in combination with using the squeegee works pretty well. The one I use is about six inches long. I've had it so long that I can't remember where I bought it.