
  I will be deleting approx 400 million records from this table. 


Hopefully, you are doing it in chunks - to avoid bloating transaction log.


  notice that i am not see any drop in my hard drive space


You wont, as you have to explicitly shrink the database file to release space. Just deleting the records, SQL server wont release the space back to the OS.


  
  Since the database should not be this size. Is it still bad for me to shrink it?
  


It is generally a bad practice as databases should be presized properly. If you are 100% sure that your database is NOT going to be again this size, its OK for you to shrink the database (in your scenario).


  
  This is a production Database. If I shrink it will it cause downtime or lock the database?
  


Shrinking a database is a very IO intensive. Its advisable to shrink using DBCC SHRINKFILE during maintenance window or when there is minimal activity.


  
  In management studio you have two options, Database or Files. Given my situation what would be the best option?
  


You should use TSQL to do the shrink. (since you asked, shrinking FILE is the way to go instead of database). You can use shrink database in chunks - tsql script to do the shrink in chunks.

Remember that when you shrink, you are fragmenting your indexes.


  
  is there a rule on the percentage of free space a DB should have?
  


You can refer to Estimating Disk Space Requirements for Databases article. There is no fix rule, you have to take into account of how your database is expected to grow. You also have to take into account, autogrowth of your databases.

References : Why Does the Transaction Log Keep Growing or Run Out of Space?

Get MS SQL Server to release disk space
I know Scotland very well and have several theories of my own but can anyone tell me where this iconic shot was taken?

Ideally I'm after as accurate a location as possible as I'm fairly sure I can narrow it to one of two valleys (bonus points for a streetview link!)


