Hi Alex,
Yes, a Mac is needed to test iOS devices however you can just have a Appium server running on the Mac which AppiumDriver (RemoteWebDriver abstract) will interact with. The actual test assembly can be executed on whichever system you like (dependent on the Appium client of course).
Selenium Grid isn't required if you are willing to specify each of the servers you will be connecting to for your tests. That being said, I would recommend having your servers set up as part of a grid if you want your test server to be accessed by other teams in your organization as grid gives an interface that can be used to see what test devices are available.
My current configuration is 2 Appium servers running on my Mac (one server for iOS devices+simulators, the other for Android), which register with our grid server and tests are executed on (Jenkins > MSBuild > MSTest > test assembly > Selenium Grid > Appium Server).
Hopefully what I just wrote can be of some help.
-Simon