Does anyone have any idea how to go about enriching for DNA palindrome structures from genomic DNA?

The way I have been doing it is:- cut up whole genome with restriction enzymes- denaturing with boiling and high salt- allowing the arms to "snap-back" on each other with rapid cooling- digesting away single stranded DNA with S1 nuclease

but I'm still not getting the enrichment I want, or maybe too much single stranded DNA contamination.

This may or may not work, but you could try quenching your annealing reaction by diluting and passing the mix over hydroxyapatite. Maybe you need to do the S1 reaction in the diluted sample prior to passing it over hydroxyapatite; not sure how clean the ends of your hairpins will be. I think hydroxyapatite preferentially binds ss nucleic acid and your hair-pinned stuff should be in the break through. If I've got it backwards and hydroxyapatite binds ds material, then you'll have to elute your hairpins with high(er) phosphate buffer, I guess. Diluting the annealtion reaction will at least slow down any further re-annealing and hydroxyapatite should get rid of ss contamination (one way or another).